web-dev-qa-db-ja.com

かなり大きい名前のファイルを強制的に削除する

私は書くプログラムの依存関係を管理するためにNode.jsを定期的に使っています。今日私はこのようなフォルダ構造になった: enter image description here

任意のファイルを削除しようとすると、このエラーが発生しました。

ソースファイル名がファイルシステムでサポートされているものより大きいです。この操作を試みる前に、より短いパス名を持つ場所に移動するか、より短い名前に名前を変更してみてください。

すでにC:\に入っていたので、それほど短くなることはありませんでした。

62
Seiyria

私は、del /Frmdir /Sを含む多数のコマンドを試しているときにこの問題を入力し始めました(削除中にshiftキーを押しながらごみ箱を迂回しようとしました)。 rmdir /Sは実際にはすべてのファイルを削除したので、リーフノードであるフォルダーを削除してから、一度に数ノードずつツリーを進めていくことができたと思います。結局私はそれらをすべてきれいにしました、しかしそれはばかげていました。

4
Seiyria

マイクロソフトのツールrobocopy.exeを使用してください。

  1. 新しい空のフォルダを作成してください。 c:\empty
  2. 次に、その空のフォルダを、削除しようとしている長いファイル名を含むフォルダにコピーします。 c:\myannoyingfolder。これは、プロンプトで次のようにして行います。

    robocopy/MIR c:\ empty c:\ myannoyingfolder

75
Flo

さて、あなたはツリーD:\very\long\pathを削除したいとしましょう、あなたは必ずしもRobocopyのようなツールを使う必要はありません。

  1. 削除できないディレクトリを含むドライブのルートディレクトリに移動します。
  2. D:\aのように1文字の名前でディレクトリを作成します。
  3. 削除したいディレクトリの内側に移動します。この場合はD:\very\long\pathです。
  4. すべて選択 (Ctrl+A)カット(Ctrl - X
  5. 作成したばかりのフォルダに移動します
  6. 貼り付け(Ctrl - V
  7. それでは、ルートディレクトリに移動してtempフォルダを削除します。この場合はD:\aです。
  8. それから戻って元のディレクトリを削除します
29
gd73

SuperDeleteのオープンソースコマンドラインツール( GitHub )は他のオプションが失敗した後に私のために働きました(Windows 10)。

4
Joshua Fox

この機能をwindowsシェルに統合することができます。 Floの答えに対する私の強化はコメントには長すぎた。

WindowsのコンテキストメニューにDeleteコマンドを追加しました。

enter image description here

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に確認を求めません。

4
toddmo

これを行う最良の方法は、robocopyを使用することです。フォローするために、私はこれを私の個人ブログに記録しました。

http://clintboessen.blogspot.com.au/2014/05/how-to-delete-files-which-exceed-255.html

3
Clint

いい方法は、ブータブルLinuxをpendriveにして、問題なくファイルをライブCDから削除することですos。

0

多くの場合、コマンドプロンプトからディレクトリにCDを挿入してDELを使用するとうまくいきます。

そうでない場合は、ディレクトリツリーの上で自分の名前を入力する必要があります。最下位レベルのフォルダの名前を短い名前(例: "a")に変更し、次に高いフォルダ名に変更します。下から上に向かって作業することで、最終ファイルより短いフルパスを持つ名前を常に操作します。

0
Eugen Rieck
  • 管理コマンドを開くプロンプト
  • Net Use z: c:\path
  • del z:\*.*

それに応じて微調整します。 Z:は問題のあるパスをマッピングするための任意のドライブ文字です。その最後の削除コマンドは、あなたがマップしたWHOLEディレクトリを消去するでしょう。

0
Bradley Forney