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

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

スイッチを使用せずに robocopy.exe を実行して C:\Users\ フォルダをバックアップすると/xj、再帰ディレクトリが長くなりすぎてしまいました。たとえば、実行すると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\Application Data が長すぎます。

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

他の解決策も検討しましたが、引き起こした問題は解決するそれ。

答え1

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

答え2

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

関連情報