読み取り用にファイルを開こうとする前に、ファイルが使用中かどうかを最初にテストする方法はありますか? たとえば、次のコード ブロックは、ファイルがまだ書き込まれている場合、または使用中と見なされる場合に例外をスローします。
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."
}
私は周りを見回しましたが、私が見つけることができる最良の方法は、try catch を内部に使用して何らかのポーリングを実行することです。何かがオンになっていると思いますがSystem.IO.FileInfo
、ありません。
より良い方法に関するアイデアはありますか?