Como verificar se um arquivo está em uso?
Existe alguma maneira de testar primeiro se um arquivo está em uso antes de tentar abri-lo para leitura? Por exemplo, esse bloco de código lançará uma exceção se o arquivo ainda estiver sendo gravado ou considerado em 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."
}
Eu olhei ao redor e o melhor que eu posso encontrar é fazer algum tipo de pesquisa com uma tentativa por dentro, e isso pareceassim hacky. Eu esperaria que houvesse algo sobreSystem.IO.FileInfo
mas não há.
Alguma idéia sobre um caminho melhor?