while (tries < MAX_TRIES) { try { File.Move(tmpfile, tgtfile); } catch (Exception e) { Console.WriteLine("File Access denied, trying again in 500 ms"); Thread.Sleep(500); ++tries; } }