Windowsで削除できないフォルダの原因と対処(不正な名称の場合)

スポンサーリンク

Windowsのファイル名やフォルダ名は「使えない文字」があり、そういった文字を含むフォルダを手動で作成しようとすると以下のように警告で教えてくれつつ、使えない文字を除外したフォルダが作成されます。

しかし、他のソフトから生成した場合は本来使えない文字を含むフォルダが生成されてしまうことがあり、削除やリネームができなくなります。

Windowsでフォルダに使えない文字のエラー

今回は、スキャンしてPDFで保存していた本を「Free PDF to JPG Converter」で画像に変換した際に、元のPDFファイル名の末尾に空白が入っていたため、変換後のフォルダ名にも末尾に空白が入ってしまいました。

生成された「末尾にスペースが含まれるフォルダ」を削除しようとすると下のエラーになります。

フォルダのプロパティの「セキュリティ」タブも以下のようにおかしいです。

画像ビューアでフォルダ内の.jpgを表示しようとすると以下のエラーになります(ImageGlass)

「WinRAR」や「7z」では末尾にスペースが入った状態のフォルダでも問題なく圧縮できたので、不正なフォルダ名でも扱えるかどうかはソフトによりけりのようです。

WinRARのファイルビューアで見てもフォルダにスペースが入っていますが、ここで修正してしまえば解凍後は正常なフォルダ名で展開できます。

「末尾スペースあり」のフォルダと「スペース無し」のフォルダはエクスプローラー上では別フォルダとして扱われますが、ダブルクリックして中を見ようとすると末尾のスペースが無視されるので、どちらも同じ中身なのかと混乱しそうになります。

このため、以下の状態になったら間違えて残すフォルダを削除してしまわないよう、圧縮するなどしてバックアップしてから作業した方が良いです(コピーはエラーで出来ません)

また、末尾にスペースが入ってしまったフォルダに何かファイルをコピーしても、以下のように二重に見える状態になります。

今回の例では「フォルダ名の末尾にスペース」が入っていた事が原因ですが、末尾スペースを含むフォルダを「手動」で作成した場合、上記の警告も出ず、スペースが含まれないフォルダが作成されます。

問題はプログラムからフォルダが生成された場合で、ファイル名末尾にはスペースが許されるため、ファイル名を元にフォルダを作成すると、末尾にスペースが含まれる不正な名称のフォルダが作成できてしまい、削除やリネームができない状態になります。

Windowsサーバーの記事ですが、コマンドプロンプトから削除する場合は、削除対象のパスの先頭に「\\?\」をつけてやると削除できるとマイクロソフトのドキュメントに書いてあります。

NTFS ファイル システム上のファイルを削除できない - Windows Server
NTS ファイル システム ボリューム上のファイルまたはフォルダーを削除できない理由について説明します。 考えられる原因ごとに解決策を提供します。

以下のように「J:\test」というフォルダを削除する場合、

rmdir "J:\test"

以下のようにパスの先頭に「\\?\」を付与して実行します。

rmdir "\\?\J:\test"

コマンドプロンプトにパスを貼り付ける場合は、エクスプローラーのアドレスバーを右クリックし、「アドレスをテキストとしてコピー(O)」をクリックすると、フォルダのパスがコピーできます。

「\\?\」をつけずに「末尾スペースありフォルダ」を削除しようとすると以下のエラーになります。

C:\WINDOWS\system32>rmdir "J:\My Documents\LotApps\Free PDF to JPG Converter\目でみる筋力トレーニングの解剖学 ひと目でわかる強化部位と筋名 "
指定されたファイルが見つかりません。

rmdirコマンドはオプション未指定だとフォルダ内にファイルがあると削除できません。

C:\WINDOWS\system32>rmdir "\\?\J:\My Documents\LotApps\Free PDF to JPG Converter\目でみる筋力トレーニングの解剖学 ひと目でわかる強化部位と筋名 "
ディレクトリが空ではありません。

フォルダ内のファイルごと削除する場合は「/S」オプションをつけて実行します。

以下がrmdirのヘルプです(rmdir /?)

C:\WINDOWS\system32>rmdir /?
ディレクトリを削除します。

RMDIR [/S] [/Q] [ドライブ:]パス
RD [/S] [/Q] [ドライブ:]パス

/S 指定されたディレクトリに加えて、そのディレクトリ内のすべての
ディレクトリとファイルを削除します。ディレクトリ ツリーを削除
するときに使用します。

/Q /S を指定してディレクトリ ツリーを削除するときに、確認の
メッセージを表示しません。(QUIET モード)

という事で「/S」オプションもつけて実行したら成功しました。

C:\WINDOWS\system32>rmdir /S "\\?\J:\My Documents\LotApps\Free PDF to JPG Converter\目で みる筋力トレーニングの解剖学 ひと目でわかる強化部位と筋名 "
\\?\J:\My Documents\LotApps\Free PDF to JPG Converter\目でみる筋力トレーニングの解剖学 ひと目でわかる強化部位と筋名 、よろしいですか (Y/N)? y

「/Q」オプションが未指定の場合は「よろしいですか (Y/N)?」と聞かれるので「y」と「Enter」を押すと実行されます。

 

あと、WinRARで問題なく圧縮できるなら、WinRARのファイラーからなら削除できるのかな?と思いましたが、エラーが出て削除できませんでした。

エラーが出ちゃいます。

 

おしまいです。

コメントフォーム

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