palm84.com

革命的愛熊主義者同盟!

削除できないファイル(フォルダー)のアレコレ【Windows】

f:id:palm84:20190924195712p:plain

はいはい、あるあるですね。対処方法もいくつか覚えといた方がいいかも、ってかんじで。

INDEX

about

Windows (NTFS) 上でファイル(フォルダー)が削除できない例は上記ページにほぼ網羅されてると思いますが、こんなかんじでせうか...

  • 使用中 使用状態確認
  • ロック解除できない ロック状態確認
  • NTFSファイル名が不正(規則違反) 特別な構文を使用
    • ファイル(フォルダ)名、またはフルパスが長すぎ
    • 禁止名
  • NTFSセキュリティ設定(アクセス制限)
    • 削除権限がない アクセス許可
    • 削除許可設定できない 所有者変更など
  • ファイルシステムのエラー エラーの修正

まとめって程ではないけどわかる範囲で書き記してみたのです。

使用状態確認 / ロックの解除

Windows標準ツールの「リソース モニター」でできるようですが、慣れないと使いにくいかも?

f:id:palm84:20190924195707p:plain

私見ですけど…下記の LockHunter が英語ですが使いやすいです。


f:id:palm84:20190925203444p:plainf:id:palm84:20190924195718p:plain

不正なファイル名

原因 4: MAX_PATH の文字制限よりも深いパスにファイルが存在する

ファイル パスに問題があると、ファイルの表示、編集、または削除を行うことができない場合があります。

多くの Windows プログラムにおいて、パスの最大長は 255 文字未満です。

  • 8.3 形式の名前を使用してファイルにアクセス - dir /x
  • 深いフォルダーの名前を変更するか、フォルダーを移動
  • パスの構造内のフォルダーにドライブをマップする - 共有パスが長い場合はネットワークドライブに割り当て(※ 自身の共有フォルダへ共有パスでアクセス)
  • フォルダーと同じ深さのネットワーク共有を使用する - 対象フォルダーを共有設定して共有パスでアクセス
  • dir /x で8.3形式のファイル名表示
Microsoft Windows [Version 10.0.18362.356]
(c) 2019 Microsoft Corporation. All rights reserved.

C:\Users\yassy>dir /x
 ドライブ C のボリューム ラベルは OS です
 ボリューム シリアル番号は F451-07AF です

 C:\Users\yassy のディレクトリ

2019/09/18  09:41    <DIR>                       .
2019/09/18  09:41    <DIR>                       ..
2019/09/07  07:19    <DIR>          ANDROI~1     .android
2018/08/02  02:03    <DIR>          CACHE~1      .cache
2017/11/06  15:45    <DIR>          HARDDI~1     .Hard Disk Manager 16 Basic
2017/11/06  15:45    <DIR>          QTWEBE~1     .QtWebEngineProcess
2019/07/02  19:32    <DIR>          VIRTUA~1     .VirtualBox
2012/06/02  14:27               712 02_DEL~1.BAT 02_Del-Thumbs.db.bat
2019/08/12  12:10                 0              1
2019/09/11  22:41    <DIR>          3DOBJE~1     3D Objects
< 省略 >
  • 一例 :
rmdir /s CACHE~1

原因 5: Win32 名前空間で予約された名前がファイル名に含まれている

Win32 名前空間で予約された名前 ("lpt1" など) が含まれているファイル名は削除できない場合があります。 この問題を解決するには、Win32 以外のプログラムを使用してファイルの名前を変更します。 POSIX ツール、またはこのようなファイルを使用するのに適切な内部構文を使用するその他のツールを使用できます。

NTFS ファイルシステム上のファイルを削除できません - Windows Server | Microsoft Docs

禁止されているファイル名ですね…

WindowsとMS-DOSでは、以下の名前もOSによって予約[3]されており、使用不可能である。

CON, PRN, AUX, CLOCK$, NUL
COM0, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9
LPT0, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9
ファイル名 - Wikipediaファイル名 - Wikipedia

原因 6: Win32 名前空間で無効な名前がファイル名に含まれている

ファイル名に無効な名前が含まれているファイルは削除できない場合があります (ファイル名の末尾にスペースまたはピリオドがある場合や、ファイル名がスペースのみで構成されている場合など)。

NTFS ファイルシステム上のファイルを削除できません - Windows Server | Microsoft Docs

このようなファイルに対して動作するいくつかのツールでは、"\\?\" 構文を使用できます。以下に例を示します。

del "\\?\c:\path_to_file_that contains a trailing space.txt "

NTFS ファイルシステム上のファイルを削除できません - Windows Server | Microsoft Docs
  • フルパスの頭に \\?\ を付加して削除、スペースを含む場合は引用符 " で囲む
del \\?\フルパス
  • 一例 :
del /f/a \\?\C:\path_to_file\lpt1

フォルダーの場合は、(/s でサブディレクトリも、問い合わせなしにするには /q も)

rmdir /s \\?\C:\path_to_file\lpt1

NTFSのアクセス権

2020.3.14 追記

この手のファイル・フォルダーの場合は、まず削除してもいいものかどうか考慮が必要かと思います。

なんとなれば、ちょっとややこしいので間違った操作で元に戻せなくなる事も考えられますから、はい。

私の経験では、Windows PE 作成エラー時に作業フォルダーが削除できなくなったことがありました。

明らかに不要なファイルなら Linux LiveCD(DVD) でサクッと削除する方が楽かも?(※ メディア作ったり、ブートさせたりは慣れてないとメンドクサかったりしますけどw)

【最終手段?】Linux LiveCD(DVD) で削除


ほなですね!


完全ファイル抹消17|ダウンロード版

完全ファイル抹消17|ダウンロード版

  • 発売日: 2018/02/08
  • メディア: Software Download