Windowsを使ってると、消せないファイルやフォルダが出来ることがあります。

「別のプロセスが使用中です」の場合や、エクスプローラーから利用できないようなファイル名がアプリから作成された場合に「ファイルがありません」状態で消せない場合があると思います。

消せないファイルやフォルダ

そんな場合の消す為の方法を幾つかまとめてみました。
知っていると何かと便利なんじゃないかな?

「別のプロセスが使用中です」のエラーで消せない場合

Process ExplorerProcess Explorer というMicrosoftのページで公開されているツールを使うことで操作でほとんどが消せると思います。タスクマネージャの高機能版という感じです。

タクスマネージャと完全に入れ替えることもできるみたいですが、自分は起動がちょっと重たい感じがしたので入れ替えはしていません。
普段プログラミングとかしない人でもいざという時のためにHDDには入れておくと便利なんじゃないかな?

Process Explorer のインストール

Process ExplorerProcess Explorer

Process Explorerのインストーラは無いみたいなので、適当にzipファイルをデスクトップにでもダウンロードします。

zipファイルを解凍後、C:\Program Files\Process Explorer とかにでも保存して、ショートカットとか作ってデスクトップやクイックランチに入れておけばインストールはOKです。

無事インストールができたら Process Explorer を起動します。

Process Explorer の 日本語化

Process Explorer英語はちょっと… という方には、日本語化パッチもあるみたいですよ。

Process Explorer と同じフォルダにおいてprocessexplorer_ja.exeを実行すれば日本語化できます。

※ うまく日本語化できない場合は、本体とパッチのバージョンが違うと思われます。

Process Explorer の 使い方

Process Explorer起動すると、上の画像のような状態ですので、
上部メニューの「表示(V)」から「下ペインの表示」を選択するか、CTRL+Lをおして、下ペインを表示しておきます。

上ペインで選択したプロセスの詳細が下ペインに表示されるようです。

 

Process Explorer次に、メニューから Find → Find Handle or DLL を選択します。ツールバーの双眼鏡のアイコンからでも同じです。

検索ダイアログが表示されたら、使用中と表示されるファイル名またはフォルダ名を入力して検索をします。

しばらくすると、問題の原因であるプロセスの一覧が表示されます。
Process Explorer検索して出てきた一覧をクリックすると、
下の一覧に対象のファイルハンドルが選択されます。

右クリックして Close handle を選ぶとOK。

後は普通にエクスプローラから削除するなり、
ゴミ箱にいれるなりして下さい。

 

 

参考 : ■ファイルを開いているプロセスを調べる

不正な名前のフォルダやファイルが出来てしまった場合

上記の方法でも消せない場合もあります。
エクスプローラで扱えないフォルダが出来てしまった時には、こちらの方法です。
プログラムで失敗した時以外でも、メールの添付ファイルを開いたらデスクトップに消せないフォルダが出来た!とか、圧縮ファイルを解凍したら、消せないフォルダが出来てしまった、という場合も使えるかもしれません。

そんな場合は、コマンドプロンプト(cmd.exe)からrdコマンドで消します。
スタートメニューからコマンドプロンプトを起動します。
ファイル名を指定して実行(R) で cmd と打っても起動します。

ちなみに、Windowsキー+Rで ファイル名を指定して実行ダイアログを出して、cmd [Enter] とやると、キーボードのみですばやく起動できますよ。
(おすすめ!)

そして、コマンドプロンプトから
消せないフォルダを rmdir /S 、消せないファイルを del コマンドで削除します。
ファイル名やフォルダを”(ダブルクォート)で囲っておくと、ほぼ間違いないでしょう。

マウスでぽいっと!!

あと、コマンドプロンプトはDrag&Dropでファイル名が入力できます。
(意外と知られていない。)
デクストップまでの長いフォルダなんて打てるか!って言う時は便利です。

cd と打って、目的のフォルダをぽい!とかすれば、深い階層のフォルダへの移動も樂々です!

さてさて。

ためしにエクスプローラから消せないフォルダを作成してみます。
( user の所は自分のユーザ名に変えてくださいね。)

C:\Documents and Settings\user> mkdir "\\.\C:\Documents and Settings\user\デスクトップ\con"

消せない…

削除してみます。だめみたいですね(^^)

※ ちなみに、何故conフォルダが消せないかは、concon問題とはとか ブラウザクラッシャーの「concon クラッシャー」 とかを読んでみてください。

 

しかし、rmdir コマンドで一発で消せます。

C:\Documents and Settings\user>rmdir /S "\\.\c:\Documents and Settings\user\デスクトップ\con"
\\.\c:\Documents and Settings\user\デスクトップ\con、よろしいですか (Y/N)? y

ちなみに、rmdir コマンドは /Sオプションでフォルダの中にファイルがあっても全てフォルダごと消せます。
mkdir -> md , rmdir -> rdと省略も出来るみたいですね。

C:\Documents and Settings\user> help rmdir
ディレクトリを削除します。
RMDIR [/S] [/Q] [ドライブ:]パス
RD [/S] [/Q] [ドライブ:]パス
/S      指定されたディレクトリに加えて、そのディレクトリ内のすべての
ディレクトリとファイルを削除します。ディレクトリ ツリーを削除
するときに使用します。
/Q      /S を指定してディレクトリ ツリーを削除するときに、確認の
メッセージを表示しません。(QUIET モード)
C:\Documents and Settings\user> help mkdir
ディレクトリを作成します。
MKDIR [ドライブ:]パス
MD [ドライブ:]パス
コマンド拡張機能を有効にすると、MKDIR は次のように変更されます:
MKDIR は、必要に応じてパスの中間ディレクトリを作成します。
たとえば、\a が存在しない場合、
mkdir \a\b\c\d
は、次と同じです:
mkdir \a
chdir \a
mkdir b
chdir b
mkdir c
chdir c
mkdir d
拡張機能が無効な場合は、上のように入力します。
C:\Documents and Settings\user> help del
ファイル (複数可) を削除します。
DEL [/P] [/F] [/S] [/Q] [/A[[:]属性]] 名前
ERASE [/P] [/F] [/S] [/Q] [/A[[:]属性]] 名前
名前          ファイルまたはディレクトリ (複数可) の一覧を指定します。
複数のファイルを削除するときはワイルドカードを使用します。
ディレクトリが指定されたときはディレクトリ内のすべてのファ
イルは削除されます。
/P            各ファイルを削除する前に確認のメッセージを表示します。
/F            読み取り専用ファイルを強制的に削除します。
/S            指定されたファイルをすべてのサブディレクトリから削除します。
/Q            ワイルドカードを使用して一括削除するときに、確認のメッセージ
を表示しません。(QUIET モード)
/A            属性により削除するファイルを選択します。
属性          R  読み取り専用            S  システム ファイル
H  隠しファイル            A  アーカイブ
-  その属性以外
コマンド拡張機能を有効にすると、DEL と ERASE は次のように変更されます:
/S スイッチの表示形式が逆になり、見つからなかったファイルではなく
削除されたファイルだけが表示されるようになります。

参考

それでもだめだった場合

セーフモードで起動して、上記の方法で試してみてください。

それでもダメな場合は、そもそも根本的な問題が違うのかも。

とりあえずリンクを…。