私は書くプログラムの依存関係を管理するためにNode.jsを定期的に使っています。今日私はこのようなフォルダ構造になった:
任意のファイルを削除しようとすると、このエラーが発生しました。
ソースファイル名がファイルシステムでサポートされているものより大きいです。この操作を試みる前に、より短いパス名を持つ場所に移動するか、より短い名前に名前を変更してみてください。
すでにC:\に入っていたので、それほど短くなることはありませんでした。
私は、del /F
やrmdir /S
を含む多数のコマンドを試しているときにこの問題を入力し始めました(削除中にshiftキーを押しながらごみ箱を迂回しようとしました)。 rmdir /S
は実際にはすべてのファイルを削除したので、リーフノードであるフォルダーを削除してから、一度に数ノードずつツリーを進めていくことができたと思います。結局私はそれらをすべてきれいにしました、しかしそれはばかげていました。
マイクロソフトのツールrobocopy.exe
を使用してください。
c:\empty
次に、その空のフォルダを、削除しようとしている長いファイル名を含むフォルダにコピーします。 c:\myannoyingfolder
。これは、プロンプトで次のようにして行います。
robocopy/MIR c:\ empty c:\ myannoyingfolder
さて、あなたはツリーD:\very\long\path
を削除したいとしましょう、あなたは必ずしもRobocopyのようなツールを使う必要はありません。
D:\a
のように1文字の名前でディレクトリを作成します。D:\very\long\path
です。D:\a
です。SuperDeleteのオープンソースコマンドラインツール( GitHub )は他のオプションが失敗した後に私のために働きました(Windows 10)。
この機能をwindowsシェルに統合することができます。 Floの答えに対する私の強化はコメントには長すぎた。
WindowsのコンテキストメニューにDelete
コマンドを追加しました。
delete.reg
ファイルは、フォルダーをrobodelete.bat
バッチファイルに関連付けるレジストリエントリを追加します。
delete.reg
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\Shell\Delete]
[HKEY_CLASSES_ROOT\Directory\Shell\Delete\command]
"Extended"=""
@="\"D:\\Documents\\robodelete.bat\" \"%1\""
robodelete.bat
mkdir c:\empty
robocopy /MIR c:\empty %1
rmdir %1
rmdir c:\empty
注:必要に応じて、両方のファイルのパスを変更してください。
WARNING:このコマンドを元に戻す方法はありません。それはごみ箱を使用せず、フォルダを破棄する前にY/Nに確認を求めません。
これを行う最良の方法は、robocopyを使用することです。フォローするために、私はこれを私の個人ブログに記録しました。
http://clintboessen.blogspot.com.au/2014/05/how-to-delete-files-which-exceed-255.html
いい方法は、ブータブルLinuxをpendriveにして、問題なくファイルをライブCDから削除することですos。
多くの場合、コマンドプロンプトからディレクトリにCDを挿入してDELを使用するとうまくいきます。
そうでない場合は、ディレクトリツリーの上で自分の名前を入力する必要があります。最下位レベルのフォルダの名前を短い名前(例: "a")に変更し、次に高いフォルダ名に変更します。下から上に向かって作業することで、最終ファイルより短いフルパスを持つ名前を常に操作します。
Net Use z: c:\path
del z:\*.*
それに応じて微調整します。 Z:は問題のあるパスをマッピングするための任意のドライブ文字です。その最後の削除コマンドは、あなたがマップしたWHOLEディレクトリを消去するでしょう。