Windows Latestは6月30日(現地時間)、「Microsoft reveals why Windows 11 keeps saying a file is in use after you close the app, plus the fix」において、Windowsのファイル操作時に遭遇する可能性のあるエラーメッセージ「使用中のファイル」の原因と対策を解説した。
このエラーメッセージはアプリによって開かれているファイルを削除したり、名前の変更を試みたりした際に表示される。エラーが表示されてもアプリを閉じることで作業を続行できるが、まれにアプリを閉じてもエラーが継続表示されることがある。
この場合、エラーの理由がわからず途方に暮れることになるが、Windows Latestは3つの原因が隠れているとして、それら原因と解決手順を解説した。
なぜ「使用中のファイル」と表示されるのか
Windowsを含む主要なオペレーティングシステムは、ファイルシステムと呼ばれるデータを管理する仕組みを持つ。このファイルシステムはストレージ(補助記憶装置)上に構築され、データを管理する役割を担っている。
このファイルシステムは文字通り「ファイル」を扱うシステムで、その管理単位はファイルとなる。このファイルは複数のアプリから同時に操作できるが、同時に操作すると相互にデータを破壊する可能性がある。
そこでオペレーティングシステムはファイルをロックする複数の仕組みを提供し、アプリにとって想定外の事態が起きないようにしている。ファイルの削除や名前の変更も例外ではなく、アクセス中のファイルを他のアプリから変更されないように保護を行う。
エラーメッセージ「使用中のファイル」は、このロック中のファイルをエクスプローラーから操作した際に表示されるメッセージとなる。ロックしているアプリを終了するか、ファイルを閉じるなどの操作を行いロックを解除すれば、そのファイルの削除が可能になる。
実際にはファイルハンドルやプロセスなどの仕組みが関係しているが、本稿では概要のみ紹介する。興味のあるWindowsユーザーはWin32 APIマニュアルの「ファイル管理について - Win32 apps | Microsoft Learn」などが参考になる。
アプリを閉じても削除できない3つの原因
エラーメッセージ「使用中のファイル」がファイルのロックによって引き起こされることは前述のとおり。しかしながら、実際にWindowsで作業していると、アプリを終了しているにもかかわらずファイルを削除できないケースがある。
理由もわからず途方に暮れることになるが、Windows Latestによると次の3つの理由で引き起こされる可能性があるという。
- セキュリティソリューションが検査のためにファイルを開いている
- クラウドストレージなどのネットワーク上のファイルに対して別のデバイスからファイルを開いている
- ダイナミックリンクライブラリー(DLL: Dynamic Link Library)としてファイルがロードされている。この場合、ファイルはアプリのメモリー空間にマッピングされ、アプリを閉じるまでロックが維持される
特に最後のケースが問題で、調査しても容易には判別できない。ファイルを削除するには何かしらの方法でロードしているアプリを特定しなければならないが、Windowsの標準ツールだけで特定することは困難とされる。
File LocksmithやSysinternalsで原因を特定する
今回Windows Latestは、これら3つの問題に遭遇した場合の解決策として、次の2つの方法を提案した。
- Microsoftのテクニカルフェローを務めるMark Russinovich氏が開発した公式ツール「Sysinternals」を使用する
- PowerToysの「File Locksmith」を使用する
前者には多数のユーティリティが含まれており、今回使用できるユーティリティは「Handle - Sysinternals | Microsoft Learn」または「プロセス エクスプローラー - Sysinternals | Microsoft Learn」とされる。
後者はPowerToysに標準搭載されたファイルのロック解除に特化したユーティリティーツール。ユーザーインタフェースが単純なことから、特別な理由がなければこちらの利用が推奨される。
File Locksmithの使用は簡単。エクスプローラーから対象ファイルを右クリックし、「Unlock with File Locksmith」をクリックする。ロックしているプロセスが表示されるので、右側の「タスクを終了」をクリックしてアプリを強制終了させれば、ファイルの削除が可能になる。
この方法でロックを解除すると、編集中の内容が失われる可能性があるため注意が必要。ロックしているプロセスを確認し、そのアプリを通常の手順で閉じることが推奨される。
なお、Russinovich氏はアプリを終了しない緊急の回避策として、ファイル名の変更を提案している。特定の条件下でのみ使用できる回避策だが、アプリやシステムを再起動できない状況下において試す価値はあると言える。

