Windowsでファイル名が長すぎるファイルを削除する方法を教えてください。
妻が持っているファイルやフォルダの中には、なぜかファイル名が長すぎて、通常の方法やコマンドラインでは削除できない(削除できない)状態になってしまったファイルがいくつかあります。私は、ファイル名は、フォルダ構造の深さのために長すぎると信じています。誰かこのようなファイルをクリーンアップするための良いユーティリティを知っていますか?
あなたが完全にディレクトリを削除したいとき、それは長いパスが含まれている場合、robocopy
は非常に良い仕事をします:
mkdir empty_dir
robocopy empty_dir the_dir_to_delete /mir
rmdir empty_dir
rmdir the_dir_to_delete
これは、内部的に robocopy [ ファイルパスのためのプレフィックス\?あなたが完全にディレクトリを削除したいとき、それは長いパスが含まれている場合、
robocopy`は非常に良い仕事をします:
mkdir empty_dir
robocopy empty_dir the_dir_to_delete /mir
rmdir empty_dir
rmdir the_dir_to_delete
これは、内部的に robocopy ファイルパスのためのプレフィックスを持つWin32関数のユニコードを意識したバージョンを使用しています; それらの関数は259の代わりに2¹⁶-1 (32,767)文字の制限を持っています。
コマンドプロンプトから:
dir /X
これは、短い名前の形式でファイル/フォルダを一覧表示します。その後、ファイルを削除するために書かれたように正確に短い名前を使用してください:
del LONGF~1.txt
移動、コピー、削除のために「フルパスとファイル名」の長さ制限を回避するために使ったトリックは、「break in」で短くすることです。
そうすると、次のようになります。 c:\some\long\path…\and\foo\barfolders\oldfiles\myoldfile.txt。前提条件 - フォルダは共有フォルダになければなりません(それは私がこれを行うために必要としている場所であるサーバー上にある場合、それはすでにあるかもしれません)、そしてそれがすでにない場合は、パスのどこかにフォルダを選択し、それを共有しています。あなたの環境と被害妄想のレベルにもよりますが、NTFSのパーミッションが合理的に制限されている限り、誰もが共有へのアクセスを変更できるようにしてください。もし必要であれば、自分のアカウントだけに変更権限を与えてください。
さて、共有フォルダかその中にあるフォルダに行って共有するか、以下のようにコマンドラインを使ってください。foo “を "fooshare "として共有していると仮定すると、
net use x: \mycomputername\fooshare\bar\folders /persistent:no
とすると、X:ドライブはその共有フォルダ内の "フォルダ "を直接指しているので、"x:\oldfilesmyoldfile.txt "はかなり短くなっています。)
覚えておいてください、ファイルを含むフォルダを必ずしも共有する必要はありません、もしそれがすでに共有フォルダの中にあるならば、共有と入れ子になったフォルダをターゲットフォルダのnearにthroughマップすることができます。
2台のサーバー間で大規模なロボコピーを行う際に、ユーザーがフォルダ構造のかなり深いところにドライブをマッピングしていたので、そこから255文字を使用することができましたが、ローカルドライブのルートからアクセスするとファイルのパスの合計長さを超えてしまいました。
おそらく最善の方法ではないと私は他の人が何を思いつくかを見ることに興味があります -
私は一度これを持っていたし、私は何の運もなくいくつかのことを試してみました。良いツールを探すのではなく、私はWindowsディスクで再起動し、リカバリーコンソールに行き、ちょうどそこから削除しました。最初の時間と本当によく動作しました!
また、ちょうどあなたのためにGoogleをやって、これを見つけました - DelinvFile 良さそうに見えますが、それを保証することはできません。
編集 - 警告、ちょうど上記を見て、唯一のトライアルです - 多分私が最初に思ったほど良いものではありません!
編集 - 警告、上記は、私が最初に思ったほど良いものではありません!
編集 - 警告、上記は、私が最初に思ったほど良いものではありません。