ファイルを読んで開こうとする前に、そのファイルが使用中であるかどうかを最初にテストする方法はありますか?私はすべての周りを見回していると私は見つけることができる最高のいくつかの並べ替えを実行することであるファイルが使用中であることを確認する方法?
try
{
FileStream stream = new FileStream(fullPath, FileMode.Open, FileAccess.Read, FileShare.Read);
}
catch (IOException ex)
{
// ex.Message == "The process cannot access the file 'XYZ' because it is being used by another process."
}
:ファイルがまだに書き込まれているか、使用する際に考慮されている場合たとえば、このコードブロックは、例外がスローされます試しにキャッチしてポーリングすると、だから hackyと感じます。私はそこに何かがあることを期待していますSystem.IO.FileInfo
がありません。
もっと良いアイデアはありますか?
私はそれが原子であることを心配していません。そのリンクは、P/Invoke経由でチェックできることについて話しました。それがどこに役立つのかを知るための情報はどこにありますか? – mckamey
@McKAMEY:追加したばかりの2番目のリンクを確認してください。 – cakeforcerberus
ファイルシステムの変更は常に可能なので、正解はそれを試して、例外が発生した場合に対処することです。さらに、それが使用されているかどうかを調べるために、フープを飛び越えるよりも簡単に求めることは簡単です。 –