削除するには長すぎるパスを持つファイルを削除する方法[複製]


203

私が見つけたコンピュータービジョンのソースコードを使用していたのですが、非常に長い名前のキャッシュファイルが作成されることに気づかず、2つを削除できなくなりました。

名前をもっと短い名前に変更しようとしましたが、ファイルに対して何もできません。また、コンピューターを再起動して、それが消えるかどうかも確認しました。

エラーメッセージは言う:

宛先パスが長すぎます。

ファイル名が宛先フォルダーに対して長すぎます。ファイル名を短くして再試行するか、パスの短い場所を試してください。

スクリーンショット

この場合、どのようにファイルを削除できますか?


コマンドを使用してコマンドラインから動作しdelますか?の行に沿って何かdel *.cacheが現在のディレクトリ内のすべての.cacheファイルを削除する必要があります。
ライアン

「パス\フォルダ\ CACHEIを\に〜指定されたファイルを見つけることができなかったシステムは、」2倍とし、そこに2つのファイルがありますが、何もしませんでした
クリス・

考え直して、あなたはすでに答えられている他の質問の1つをチェックすることができました。たとえばこれ
ライアン

1
これらの2つのファイルがディレクトリに残っている場合は、ディレクトリ全体を削除するほうが良いかもしれません。コマンドプロンプトから、rd /s directoryname これを試してみdirectorynameて、その中のすべてのファイル/サブディレクトリを
消去

回答:


353

Windowsを使用していると仮定します。

私がいつもしているのは、substを使用して、パスの一部とドライブ文字の関連付けを作成することです。

次に、新しいドライブ文字に移動し、長い名前のファイルに移動します。これで、名前の変更/削除などができるはずです。これが機能する理由は、パス自体に255文字以上が含まれなくなったためです。

substフォルダーを作成するには

  1. コマンドプロンプトを起動します(管理者特権は不要です)
  2. を使用cdして、目的のフォルダに移動します(tab名前をオートコンプリートするために使用できます)
  3. 入力subst j: .して、ドライブ文字の関連付けを作成します。(。の代わりに、パス全体を入力することもできます)
  4. これでエクスプローラーで、このPCに新しいドライブ文字が追加されました。それに移動し、.cacheファイルに対して必要なことをすべて行います。
  5. コマンドウィンドウに戻り、入力subst /d j:してドライブを削除するか、PCを再起動します。

編集:これをかなり短くすることができる私が学んだトリック。問題のあるエクスプローラーウィンドウでアドレスバーをクリックして入力し、入力してcmdを押しEnterてその場所でコマンドプロンプトを起動し、手順3に進みます。

EDIT2:さて、このトリックはさらに拡張することができます。エクスプローラーで正しいパスにいる場合subst j: .は、アドレスバーに入力してEnter キーを押すだけです。コマンドウィンドウが表示され、コマンドが実行されて再度閉じられます。エクスプローラーに新しいドライブが表示されます。


26
robocopy empty_dir base_nested_dir / purge-空のディレクトリを作成し、空のディレクトリにないターゲットディレクトリ内のすべてを削除するようにrobocopyに指示しますstackoverflow.com/a/3320317/588759
rofrol 14年

7
これを試してみましたが、問題のファイルを削除できませんでした。Windowsでcygwinを使用します。別の解決策は、その方法でファイルを削除することです:rm -R / path / in / questionあなたは行ってもいいです
ジョン

1
SUBSTがJ:をパラメーターとして認識しなかった(使用可能な仮想ドライブも表示されなかった)という問題があったため、Johnが言及したcygwinオプションはうまく機能しました。
Tisch

1
@rofrol、あなたはrobocopyをコメントの答えにする必要があります。それは(で作成されたもののような子ディレクトリの多くを扱うときにディレクトリ名が近づい行うよりもはるかに簡単ですnode_modules
アンディ・ブラウン

1
ジョンのソリューションは非常にうまく機能し、-f(forceパラメーター)を追加しただけです:rm -R -f / pathToDelete
クリストフケラー

67

あなたの質問は、ファイル名自体が長すぎる場合にファイルを削除する方法を尋ねます。ファイル名だけでなくパスが長すぎる場合は、簡単にフォルダの名前を変更してパスを短くすることができます。

ただし、名前が255文字を超えるファイルを削除するには:

  • 「CMD.EXE」を実行してコマンドプロンプトを開きます
  • ファイルを保持するフォルダーに移動します
  • ファイルの短い名前を表示するコマンドDIR / Xを使用します。
  • 短い名前を使用して削除します。

つまり、ファイルの名前が「verylongfilename.fil」の場合、ショートネームは「verylo〜1.fil」のように表示され、その名前を使用して削除できます。

Windows自体は255文字をはるかに超えるパスを処理できますが、GUIのほとんど(Windowsエクスプローラーなど)は短い制限に制限されていることに注意してください。


16
これは受け入れられているよりも良い答えです。
ベン

3
その方法でフォルダー全体を削除できるため、選択した答えの方が優れています
-mcont

2
しかし、Windows 7では、DIR / xはここで表示をまったく変更しないようです... :(
gumuruh

3
一部のNTFSファイルシステムには、8.3に相当するものがありません。したがって、これは常に機能するとは限りません。
ロスプレッサー

CMDからデル/ Sは8上の大きな名前にしても私のために働いた
ジェフ・

4

Googled:最初の結果の長いファイル名を削除

Unlocker http://www.filehippo.com/download_unlocker/を使用します

フォルダーを削除できません:他の人またはプログラムによって使用されていますファイルを削除できません:アクセスが拒否されました共有違反がありました。ソースまたは宛先ファイルが使用中の可能性があります。ファイルは別のプログラムまたはユーザーによって使用されています。ディスクがいっぱいでないか、書き込み保護されていないこと、およびファイルが現在使用されていないことを確認してください。

Unlockerが役立ちます!フォルダーまたはファイルを右クリックして、[ロック解除]を選択するだけです。フォルダーまたはファイルがロックされている場合、ロッカーの一覧が表示されます。[すべてロック解除]をクリックするだけで完了です。


1
私はそれを見ましたが、アンブロッカーが安全に使用できるかどうかわかりませんでしたので、無視しました。試してみます。編集:動作しませんでした。他のファイルでは機能しますが、ブロック解除ツールがドロップダウンに表示されません
クリス

確かに最も簡単な方法ですが、完了するには再起動が必要な場合があります。Unlockerには何の問題もありません。何年も使用しており、非常に便利なユーティリティです。パスが長すぎるファイルまたはフォルダーの場合、ロックハンドルは見つかりませんが、その後ドロップダウンで[削除]オプションを提供する必要があります。
スティーブペティファー

1
完璧に動作しました-おもしろいことは、このソフトウェアをインストールしましたが、この状況でそれを使用することはありませんでした。
ダニエルソコロウスキ

円形のジャンクションフォルダーをコピーした別のフォルダーでは機能しませんでしたが、機能したのは、各レベルフォルダーの名前を1文字に変更してから1削除することでした。
ダニエルソコロウスキ

これは私のために働いた唯一の答えでした(私はwindows 10を使用しています)。どうもありがとうございました!
-user26832

4

マイクロソフトには、削除できないファイルの削除に関する役立つナレッジベース記事があります。原因#4はあなたに関連しています。

あなたの最善の策は、おそらくファイルが存在するフォルダにドライブをマップし(解決方法#3)、そのドライブから入力して削除することです。


1
私は自分のハードドライブ上の場所に「ネットワークドライブをマップ」できることを以前は認識していませんでした。それがWindowsエクスプローラーでしたことです。ドライブに移動した後、フォルダとコンテンツを簡単に削除できました。上記のコンソールソリューションと同じ原理ですが、これは簡単なGUIソリューションであり、私にとっては簡単でした。
ランダムハンドル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.