連載
» 2009年02月03日 18時30分 UPDATE

サクッとおいしいVistaチップス 42枚め:消したくても消せないファイルを処分する (1/2)

Windowsでは特定のファイルやフォルダを削除したくても削除できないトラブルに見舞われることが少なくない。今日も気になるあのファイル、どう消せばいい!?

[織田薫,ITmedia]

消せないファイルが発生するのはなぜか?

今回のチップスが使えるエディションは?
エディション Home Basic Home Premium Business Ultimate
対応状況

 Windowsを使っていると何らかの理由により、ファイルやフォルダを削除したくても削除できなくなってしまうことがある。そのまま放置していても問題ない場合が多いが、不要なファイルが手を付けられない状態で残ってしまうのは気になるものだ。今回はWindows Vistaでファイルを削除できなくなってしまう主な原因と、その対処法を探る。

アプリケーションがファイルやフォルダをロックしている

 Windowsではファイルやフォルダを開くときに、ほかのアプリケーションがファイルやフォルダの内容を変更できないようにロックすることができる。ロックされているファイルやフォルダは編集したり削除したりすることはできない。

 ファイルをロックしているアプリケーションが特定できる場合は、アプリケーションを終了すればよい。しかし、アプリケーションを特定しにくいこともある。例えば、コマンドプロンプトでフォルダをカレントディレクトリにしている場合、フォルダを削除することはできない。また、アプリケーションに最近利用したフォルダを参照するような機能があると、最後に利用したフォルダはロックされたままになっていることがある。

tm0902tips42_01.jpgtm0902tips42_02.jpg ファイルやフォルダをアプリケーションがロックしていると、削除できないことがある(写真=左)。この場合はコマンドプロンプトで該当するフォルダに移動しているため、フォルダを削除できない状態になっている(写真=右)。ファイルやフォルダを削除できるかどうかは、アプリケーションがどのようにファイルをオープンするかに依存する。例えば、メモ帳でファイルを開いていてもファイルを削除できるが、ほかのテキストエディタで開いている場合は、削除できないこともある

 そのほかにも、アプリケーションが異常終了したり、終了したつもりでもタスクマネージャ上にプロセスとして残ってしまっている場合は、ファイルを削除できないことがある。削除できないファイルを開いているアプリケーションを特定できるならば、キーボードで「Ctrl」+「Shift」+「Esc」を同時に押下してタスクマネージャを起動し、該当するアプリケーションを強制終了してから、ファイルを削除できるか試してみよう。

tm0902tips42_03.jpgtm0902tips42_04.jpg Vistaのタスクマネージャは、デフォルトでログオンしているユーザーのプロセスしか表示しない。ファイルをロックしているプロセスを探すには、「すべてのユーザーのプロセスを表示」ボタンを押下して、すべてのプロセスを表示する必要があるかもしれない

 通常のアプリケーションではなく、エクスプローラやWindowsのサービスなどがファイルをロックしていることもある。エクスプローラがファイルをロックしている場合、いったんログオフしてログオンし直すとファイルを削除できることがある。ログオンし直してもファイルを削除できないならば、再起動してファイルが削除できるかどうか確認してみよう。

Sysinternals Suiteでファイルを使用中のプロセスを調べる

 タスクマネージャを利用してもアプリケーションを特定できず、ログオフ/ログオンや再起動を行ってもファイルやフォルダを削除できない場合は、Sysinternals Suiteを使ってみてはどうだろうか。

 Sysinternals SuiteとはITプロフェッショナルや開発者が、Windowsを管理、診断、トラブルシューティングするのに役立つユーティリティ群で、かつてはSysinternalsが提供していた。2006年7月にSysinternalsはMicrosoftに買収され、現在はTechNet内に同ツールのホームページが開設されている。左側のリンクから「Sysinternals Suite」をクリックすると、各種ツールをダウンロードすることが可能だ。インストーラは用意されておらず、任意のフォルダにZIPファイルを展開するだけでよい。

 コマンドラインに慣れたユーザーであれば、「Handle」ユーティリティを利用するのが一番簡単だ。コマンドプロンプトを管理者として起動し、ZIPファイルを展開したフォルダ内の「handle.exe」を実行する。そのまま実行すると、現在動作しているプロセスと、プロセスが利用しているリソースがすべて表示される。引数に、削除できないファイルやフォルダの名前を指定すれば、特定のリソースを利用しているプロセスのみ表示できる。

 コマンドプロンプトでの操作に抵抗があるユーザーは、同じくSysinternals Suiteの「Process Explorer」を使うのも手だ。Process Explorerの使い方は、こちらの記事が詳しい。

tm0902tips42_05.jpgtm0902tips42_06.jpg コマンドプロンプトからHandleを実行すると、プロセスがオープンしているリソースの一覧を表示することができる(写真=左)。ファイルやフォルダを開いているプロセスを表示したい場合は、引数として調べたいファイル名、フォルダ名を指定すればよい。「C\Users\Kaoru\Pictures」が開いているプロセスを確認したところ、エクスプローラとペイントが利用していた(写真=右)

アクセス権の問題が発生している

tm0902tips42_07.jpg アクセス権がない場合、「この操作を実行するアクセス許可が必要です」というエラーメッセージが表示される

 NTFSのファイルシステムでは、ファイルやフォルダに対してアクセス権が付与されている。管理者としてログオンしている場合は、ほとんどのファイルやフォルダに対してフルコントロールのアクセス権を持っている。しかし、標準ユーザーの場合は、システムが管理するフォルダに対して読み込みのアクセス権しか持っていないことが多い。

 また、ファイルによっては、管理者に対してもまったくアクセス権が付与されていないことがある。アクセス権が与えられていない場合は当然、そのままファイルを削除することはできない。

 アクセス権を確認するには、ファイルの右クリックメニューからプロパティを表示し、「セキュリティ」タブを開く。アカウント自身か、グループにアクセス権が与えられていればアクセス権の問題ではない。管理者アカウントであれば、Administratorsグループ、Usersグループ、もしくはアカウント自身にアクセス権があればよい。標準ユーザーの場合は、Usersグループかアカウント自身にアクセス権があればよい。

 アクセス権がない場合は、アカウント自身に対してフルコントロールのアクセス権を与えればファイルを削除できる。ただし、アクセス権がない状態でアクセス権を変更できるのは、ファイルの所有者の権限が必要だ。管理者アカウントであれば所有権を取得できるので、管理者アカウントで所有権を取得してからアクセス権を変更しよう。

tm0902tips42_08.jpgtm0902tips42_09.jpgtm0902tips42_10.jpg ファイルやフォルダのアクセス権を変更するには、消せないファイルを右クリックして「プロパティ」を選択し、起動したファイルのプロパティで「セキュリティ」タブに移動する(写真=左)。所有権を取得するには、「セキュリティ」タブの「詳細設定」ボタンを押下して詳細設定を呼び出し、「所有者」タブで設定を行う(写真=中央)。アクセス権を追加するには、「セキュリティ」タブの「編集」ボタンを押下して、アクセス権を編集すればよい(写真=右)。「追加」ボタンからユーザーまたはグループを追加できる

       1|2 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

この記事が気に入ったら
ITmedia PC USER に「いいね!」しよう