Windowsで削除できないファイルを強制削除する方法――見えない特殊文字の正体と対処法
はじめに
数年に一度、小さながら厄介な問題に遭遇します。Windowsエクスプローラーでファイルを削除しようとすると、「指定されたファイルが見つかりません」というエラーが表示され、削除できません。こうしたケースでは、普段ならコマンドプロンプトを開いてコマンドラインから削除すれば済む話です。ところが今回、いつもの方法でも削除が完了せず、同じく「指定されたファイルが見つかりません」というメッセージが返ってきました。
この問題が発生したのは、Samba共有上でXerox B215プリンターが作成したロックファイルでした。どういうわけかプリンターがファイル名を途中で切り詰めてしまったようで、「Xerox_Scan.pdf」になるはずのファイルが「Xerox_Scan.」という名前になっていたのです。しかし、本当にそれだけなのでしょうか?
問題の内容
コマンドラインで削除を試みると、次のような結果になります。
del "Xerox_Scan."
The system cannot find the file specified.
ここでふと気づきました。おそらくファイル名の末尾に、Windowsエクスプローラーやコマンドプロンプトでは表示されない「見えない特殊文字」が含まれているのではないか、と。実はこれ、かつて私が同僚たちと後輩向けのシステム管理試験で使っていたちょっとしたイタズラを思い出させるものでした。ファイル名の末尾に特殊文字(古き良きDOS時代の「Alt + 255」テクニックなど)を仕込んだファイルを作成し、誰がその原因を見抜けるか競うのです。ちなみにLinuxであれば、od(オクタルダンプ)コマンドを使えば、ファイル名を構成するすべての文字を確認できます。
解決方法
Windowsでこの種のファイルを削除するには、「貪欲な(greedy)検索」、正確には「貪欲な削除」を実行するのが有効です。何をしているのかピンとこない方は、正規表現をイメージしてください。指定したパス以下のサブディレクトリも含めて(/s オプション)、末尾に0個以上の空白文字を含むファイルを探し出して削除するのです。これ一発で、厄介なファイルはきれいさっぱり消えてくれます。
del /s \\?\D:\Scans\Xerox_Scan."
Deleted file - \\?\D:\Scans\Xerox_Scan.
ポイント:「\\?\」プレフィックスについて
コマンド中の「\\?\」は、Win32の通常のパス解析をバイパスするための拡張パス構文です。通常の指定方法では扱いにくい特殊文字を含むファイル名も、この形式ならそのままコマンドに渡せるため、今回のようなケースで特に威力を発揮します。
まとめ
技術的に言えば、削除できないファイルが1つ存在すること自体は大問題ではありません。しかし、精神衛生上よろしくないですし、見た目にも美しくありません。さらに理論的には、この種のファイルを適切にスキップする処理が組み込まれていないバックアップスクリプトやスケジュールタスクの妨げになる可能性もあります。だからこそ、こうした軽いメンテナンスは定期的に行っておきたいところです。
ほかにも方法はいくつかあります。たとえばProcess Explorerを使えば、空白文字を含むファイルを検索して削除することも可能です。とはいえ、個人的にはシンプルなコマンドラインによる正規表現的な検索・削除が最もエレガントだと感じています。作業自体は地味に面倒ですが、解決策は迅速かつ手軽です。それではまた。
-
Windows 11で削除できないファイルやフォルダを強制削除する3つの方法
Windows 11では、通常ファイルやフォルダの削除はとても簡単ですが、時にはどうしても削除できないファイルやフォルダに遭遇することがあります。そのような場合、多くは「ファイルが使用中です」という警告メッセージが表示されます。焦る必要はありません。Windows 11でファイルを強制的に削除する方法はいくつかありますので、この記事で紹介する対処法を試してみてください。 なぜWindowsはファイルやフォルダの削除を妨げるのか すぐに削除を試みる前に、まずWindowsが削除を許可しない原因を確認しておきましょう。主な理由は以下の通りです。 ファイルまたはフォルダが破損している。 ごみ箱がい
-
Windowsで削除できないファイルを消す方法――諦める前に試したい6つの対処法
ファイルやフォルダーを削除しようとしても、Deleteキーを何度押しても、ごみ箱にドラッグしても、どうしても消えてくれない——そんな経験はないでしょうか。 原因はさまざまですが、結果は同じで、とてもストレスが溜まるものです。そこで今回は、そうした厄介なファイルをようやく削除できる5つの方法(+おまけの技)を紹介します。 なお、Windowsのシステムファイルは通常、誤った削除から保護されています。OSに不具合が生じる恐れがあるため、システムファイルを消そうとしていないか必ず確認してください。また、万が一に備えて作業前にフルバックアップを取っておくのも賢明です。 1. アプリをすべて閉じる