path – Windowsで長すぎるファイル名でファイルを削除するには?

filenames path windows
この質問はすでにここに答えがあります
この質問はすでにここに答えがあります。delete”>通常の削除ではパス/名前が長すぎるディレクトリを削除する方法 (23件の回答)
クローズド 5年前です。

私の妻はいくつかのファイルやフォルダを持っていますが、そのファイル名のせいで、通常の方法でもコマンドラインでも削除できない(削除できない)状態になってしまいました。私は、フォルダ構造の深さのためにファイル名が長すぎると思います。誰かこのようなファイルをクリーンアップするための良いユーティリティを知っていますか?

  205  user3048  2009-09-23


ベストアンサー

ディレクトリを完全に削除したいとき、長いパスが含まれている場合、robocopyは非常に良い仕事をしてくれます

mkdir empty_dir
robocopy empty_dir the_dir_to_delete /mir
rmdir empty_dir
rmdir the_dir_to_delete

これは、 robocopy の内部で ファイルパスの接頭辞が \\?\ である Win32 関数の Unicode 対応版を使用しているからです; これらの関数では、259 文字ではなく 2¹⁶-1 (32,767) 文字が制限されています

すべてのファイルを取り除くために、このプロセスを複数回行う必要があるかもしれません

431  Benoit  2012-08-29


コマンドプロンプトから

dir /X

これはあなたのファイル/フォルダをショートネーム形式でリストアップします。そして、ファイルを削除するには、書かれている通りの短い名前を使用してください

del LONGF~1.txt

91  Will Eddins  2009-09-23


私はパスの中で、連続する親フォルダの名前を “1 “に変更して削除を試みながら、徐々に自分のやり方で作業しています。あなたは効果的に毎回パスを短縮しているし、私は最終的にディレクトリ構造全体を削除することができるようになるまで、4つまたは5つ以上のディレクトリで作業する必要があったことはありません(これはあなたが望むものであるかもしれないし、そうでないかもしれない)。最後の子フォルダからも同様にこれを行うことができますし、あなたの方法で上下に作業を行うことができます

53  joeqwerty  2009-09-23


コマンドプロンプト (cmd.exe) を含むいくつかのプログラムでは、以下のようにフルパスの前に \\.\ を付けることで、ファイル長の制限を回避することができます

\\.\C:\some directory\other directory\a file with long name

13  user1686  2009-09-23


何かを移動、コピー、削除するために「フルパスとファイル名」の長さ制限を回避するために私が使用したトリックは、パスの下の方にあるフォルダを指すマップされたドライブレターを使用して、途中で(またはそれ以上で)「ブレークイン」することによって、それを短縮することです

So you have c:It’some\longpath…I’m going to go!

次に、パスの最初のチャンクが数文字の長さになるように、パスに沿ったどこかに任意のドライブ文字をマッピングします。前提条件 – フォルダが共有フォルダ内にある必要があります (サーバ上にある場合は既にあるかもしれませんが、私はこれを行う必要がありました)。あなたの環境と被害妄想のレベルにもよりますが、NTFSのパーミッションが合理的に制限されている限り、誰もが共有へのアクセスを変更できるようにしてください。必要であれば、自分のアカウントのみに変更権限を許可することもできます

今すぐ共有フォルダまたはその中の一つに行って共有するか、以下のようにコマンドラインを使用してください。共有フォルダ “foo “を “fooshare “とすると、以下のようになります

net use x: \\mycomputername\fooshare\bar\folders /persistent:no

と、X:ドライブがその共有内のフォルダ「フォルダ」を直接指すようになったので、「x:\oldfilesmyoldfile.txt」はかなり短くなりました

(「/persistent:no」は、これが次の再起動に耐えられず、後で混乱させないことを意味します。終わったらフォルダの共有を解除することを忘れないでください)

ファイルを含むフォルダを必ずしも共有する必要はありません。共有フォルダ内にある場合は、共有と入れ子になっているフォルダをファイルの近くのターゲットフォルダにマップするだけで、問題なく動作します

ユーザーがフォルダ構造のかなり深いところにドライブをマッピングしていたので、そこから255文字を使うことができたのですが、ローカルドライブのルートからアクセスするとファイルパスの長さの合計を超えてしまうことに気づき、2台のサーバー間で大規模なロボコピーを行う際にこのテクニックを使用しました

13  AdamV  2012-02-21


私が見つけた最も簡単な方法は、ubuntuのライブCDから起動することです

別の方法として、パスの途中で共有フォルダを作成し、そこにネットワークドライブをマップして、マップされたフォルダから削除を行うことができます(同じマシン上であっても)

9  Col  2009-09-23


どこか別の場所にあるファイルを切り貼りしたディレクトリの名前を変更してから削除します。ここで動作します

または、コマンドプロンプトからでも構いません

5  Rook  2009-09-23


おそらくベストな方法ではないと思いますが、他の人が何を思いつくか見てみたいと思っています

私も一度これがあったのですが、何の運もなく色々試してみました。良いツールを探すよりも、Windowsディスクを入れたまま再起動して、リカバリーコンソールに行き、そこから削除するだけでした。初めての作業で、本当にうまくいきました

また、ちょうどあなたのためにGoogleをやって、これを見つけました – DelinvFile 見た目は良いですが、それを保証することはできません

編集 – 警告は、ちょうど上記を見ただけでトライアルです – たぶん私が最初に思ったように良いではありません!

1  William Hilsum  2009-09-23


タイトルとURLをコピーしました