Trabalhar com arquivos no c# as vezes pode ser bem trabalhoso. Com isto resolvi postar uma solução bem simples para quem deseja verificar se um arquivo está disponível para escrita/leitura no tempo de execução.
Veja:
protected virtual bool IsFileLocked(FileInfo file)
{
FileStream stream = null;
try
{
stream = file.Open(FileMode.Open, FileAccess.Read, FileShare.None);
}
catch (IOException)
{
//o arquivo está indiposnível pelas seguintes causas:
//está sendo escrito
//utilizado por uma outra thread
//não existe ou sendo criado
return true;
}
finally
{
if (stream != null)
stream.Close();
}
//arquivo está disponível
return false;
}
Simples não?
Um grande abraço a todos!
