「ファイル名が長すぎる」場合、robocopyによって作成された再帰ディレクトリを削除します


9

/xjスイッチを使用せずにrobocopy.exeを実行してC:\ Users \フォルダーをバックアップした後、長すぎる再帰ディレクトリができました。たとえば、実行dir /b /sすると、次のエラーが表示されます。

ディレクトリ名C:\ Users \ ... \ AppData \ Local \ Application Data \ Application Data \ Application Data \ Application Data \ Application Data \ Application Data \ Application Data \ Application Data \ Application Data \ Application Data \ Application Data \ Application Data \ Application Dataが長すぎます。

で削除しようとしましたrmdir "Application Data" /sが、「ファイル名が長すぎます」というエラーが表示されました

他の解決策も検討しました、問題の原因なったツールを使用して解決できる可能性があると思いました。

回答:


14

で空のディレクトリを作成しmkdir empty、それを使用しrobocopy empty\ "Application Data\" /mir"てディレクトリツリー全体を削除します。次に、rmdir emptyrmdir "Application Dataを発行してクリーンアップすれば完了です。


3
+1信じられないことですが、フォルダを削除するような単純なことを行うには、この難解なものが必要です...
nextgentech 2013年

このバギーな無限再帰フォルダーは、私を夢中にさせていました。ありがとうございました。
Zofren 2014年

4

次のことができるようにもcd以下の何を削除して、ディレクトリの中に深く十分なダウンcd再びトップにバックアップし、残っているものを削除します。

それでも問題が解決しない場合は、無料のデモ版のHamilton Cシェル(完全な開示:私が作成者です)をダウンロードrmし、-r(再帰的)および-x(何でも削除して)付属のユーティリティを使用します。)オプション。

rm -rx directoryname

rmは内部で新しい長いUnicodeファイル名形式を使用して、32K文字までのパスを操作できるようにします。

問題に権限も含まれていることがわかった場合は、使用sudoまたはsu昇格が必要になることがあります。

sudo rm -rx directoryname

本当に頑固な場合には、caclsレポートなどのアクセスを妨げるACLに妨げられることがありますEveryone:(DENY)。その場合、そのACE(アクセス制御エントリ)を削除する必要があります。

cacls directoryname /e /r everyone

最後に、私はこれが役立つことを本当に意図しています。私のサーバーログは、人々がこれを試すために私のソフトウェアをダウンロードしていることを教えてくれます。うまくいかないケースが発生した場合は、その理由をデバッグして機能させるために、ご連絡いただければ幸いです。削除できないものは頻繁に発生するので、すべてのケースをカバーしたいと思います。


3

次のいずれかを試すこともできます。

解決策1:自動生成された8.3形式の名前を使用してファイルにアクセスする

解決策2:深いフォルダーの名前を変更または移動する

解決策3:ドライブをパスの構造内のフォルダーにマップするドライブをターゲットファイルまたはフォルダーのパスの構造内のフォルダーにマップします。このメソッドは、仮想パスを短縮します。

解決策4:フォルダーと同じ深さのネットワーク共有を使用する解決策1、2、および3が不便であるか、問題が解決しない場合は、フォルダーツリーでできるだけ深いネットワーク共有を作成し、次に共有にアクセスしてフォルダの名前を変更します。

解決策5:深いパスを通過できるツールを使用する

http://support.microsoft.com/kb/320081


この解決策は、「解決策5:深いパスを移動できるツールを使用する」の一種のようです
Aaron
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.