¿Cómo comprobar si un archivo está en uso?

¿Hay alguna forma de probar primero si un archivo está en uso antes de intentar abrirlo para leerlo? Por ejemplo, este bloque de código lanzará una excepción si el archivo aún se está escribiendo o se considera en uso:

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

He mirado por todos lados y lo mejor que puedo encontrar es realizar algún tipo de sondeo con un intento de captura en el interior, y eso se sienteasi que hacky Espero que haya algo enSystem.IO.FileInfo pero no hay

¿Alguna idea de una manera mejor?

Respuestas a la pregunta(2)

Su respuesta a la pregunta