Я сделал 5-минутный цикл и просто посмотрел, чтобы файл был доступен. Таким образом, я мог бы дать время, чтобы освободиться, но все же все еще имел определенное время. Если это не очистило 5 минут в моей системе, что-то определенно неправильно. Вы должны установить свой срок с учетом ваших обстоятельств. Я получил эту идею откуда-то, понятия не имею, где больше.
DateTime EndTime = System.DateTime.Now.AddMinutes((double)timeOut);
while (System.DateTime.Now <= EndTime)
{
try
{
using (Stream stream = System.IO.File.Open(filename, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite))
{
if (stream != null)
{
break;
}
}
}
catch (FileNotFoundException)
{
//
}
catch (IOException)
{
//
}
catch (UnauthorizedAccessException)
{
//
}
System.Threading.Thread.Sleep(sleepTime);
}