スイッチを使用せずに 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:深い道を横断できるツールを使用する