Jak sprawdzić, czy plik jest w użyciu?

Czy jest jakiś sposób, aby najpierw sprawdzić, czy plik jest w użyciu, zanim spróbujesz go otworzyć do czytania? Na przykład ten blok kodu spowoduje zgłoszenie wyjątku, jeśli plik nadal jest zapisywany lub jest używany:

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."
}

Rozejrzałem się dookoła i najlepsze, co mogę znaleźć, to wykonać jakąś ankietę z próbą złapania w środku i to jest odczuwalnewięc hacky. Spodziewałbym się, że coś się stanieSystem.IO.FileInfo ale nie ma.

Jakieś pomysły na lepszy sposób?

questionAnswers(2)

yourAnswerToTheQuestion