問題:削除できない Windows 7 サブディレクトリがあります。
ここにいる他の人や、インターネット上の他の多くの人が、この一般的なクラスの Windows 7 ファイル システムの問題について質問していることを知っていますが、ここでの私の質問は、Windows 7 の削除できないファイルの特定のクラスに特に関連しています。ディレクトリ名。
ファイルシステムを検査および/または編集するためのより良いツールはありますか (必要に応じて 16 進数で)?
OS: x64 Professional を実行していますが、完全に更新されています。
試したこと:このテーマに関する多くの Web ページを読み、考えられる多くの解決策を試しました。私は最近、システム内部を完全に処理できると思われる PowerShell を使用して、この問題に取り組んできました。この時点で、ファイルシステム用の 16 進エディタのようなものを探しています。
原因でないもの:
- 長いファイル名、または
- 長い道のりに位置することによって、
修正されていないもの:
- 古い DOS ファイル命名スキームを使用した名前の変更
- ファイルシステム全体のCHKDSKの実行
- それにアクセスしている可能性のある他のすべてのプログラムをシャットダウンします
- ウイルスソフトウェアの無効化
- Delinvfile.exe 4.5 ユーティリティを使用します。注: Delinvfile は、「無効な文字を含む短い名前のファイルとフォルダー。これらには [ファイル名で許可されていない] 文字が含まれています:
< - Less than symbol > - Greater than symbol : - Colon " - Quotation Mark / - Forward Slash | - Vertical Bar ? - Question mark * - Asterisk
何が原因ですか?私の場合、削除できないサブディレクトリは、ソース ツリーのバックアップに使用するカスタムPHPプログラムを使用して数か月前に作成されました。名前にスペースまたはその他の不適切な文字が含まれているようですが、確認できません。ファイルディレクトリに表示されますが、削除、名前変更、rmdir などはできません。
調査:ファイル システム上で移動でき、C: の「holds bad subdir」という名前のサブディレクトリ内に配置しました。
ここでは、 PowerShellで確認できます。まず、Get-ChildItem (別名「dir」と同じ) を使用して表示します。
PS C:\holds bad subdir> Get-ChildItem
Directory: C:\holds bad subdir
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 1/9/2014 3:01 AM 20120530-04
'del "2' + tab と入力してコマンド ウィンドウで削除しようとすると、次のようにファイル名の展開が完了します: del "20120530-04 "、ディレクトリ名の末尾にスペースがあることを示します。このコマンドを実行すると、結果は次のようになります。
C:\holds bad subdir\20120530-04 が見つかりませんでした
del 2* で削除しようとすると、システムは削除したかのように戻りますが、削除しません。
この同じコマンドを PowerShell で発行し、Force
オプションも指定すると、次のように、「指定されたパス C:\holds bad subdir\20120530-04 のオブジェクトが存在しません。」と報告されます。
PS C:\holds bad subdir> Remove-Item 2* -Force Remove-Item : An object at the specified path C:\holds bad subdir\20120530-04 does not exist.At line:1 char:1
+ Remove-Item 2* -Force
+ ~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Remove-Item], PSArgumentException
+ FullyQualifiedErrorId : Argument,Microsoft.PowerShell.Commands.RemoveItemCommand
これは、ディレクトリが明確に認識できるため、ちょっと奇妙ですが、どのメソッドも明らかにそれを認識できないか、適用できないようです。
Windows Explorerで削除できないサブディレクトリを表示することもできます。ブラウズすると、「このフォルダは空です」と表示されます。そこで削除しようとすると、次のようになります。
また、このフォルダのプロパティを表示すると、名前が「20120530-04」、つまり末尾に余分なスペースがあることがわかります。
また興味深いことに、[セキュリティ] タブには、「(X) 要求されたセキュリティ情報は利用できないか、表示できません」と表示されます。
また、読み取り専用でも非表示でもありません。
問題の範囲:現在、これは大きな問題ではありません。このサブディレクトリを邪魔にならないサブディレクトリ内に埋め込むのは簡単で、気にする必要はありません。
しかし、私にとってこれは知的な挑戦であり、部分的には Windows 7 の根性についてもっと学ぶ方法でもあります。Windows のこのようなバグがこれほど低いレベルで存在し、非常に多くのシステムがインストールされていることに驚いていると思います。世界。現時点では、これが Windows のバグなのか、不良データ (バグが入り込んだ) なのか、単なる不良データなのかを判断するのは困難です。