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