Я пытаюсь сохранить резервную копию некоторых данных. Если резервная копия существует, я хочу ее удалить, дать самому последнему файлу имя файла резервной копии, а затем сохранить новый файл как самый последний файл.Удаленный файл все еще существует?
Проблема, с которой я столкнулся, заключается в том, что при удалении существующего файла я все еще не могу сохранить другой файл под тем же именем. Система все еще считает, что файл существует, и действительно, файл не удаляется в том месте, где программа выдает исключение, даже если две строки находятся справа друг от друга. Единственное, о чем я могу думать, это то, что операция «удалить» не успела закончить к моменту выполнения операции перемещения. Но я не знаю, как это исправить.
Код выглядит примерно так.
File.Delete(filePath.Substring(filePath.Length - 4) + ".bak");
File.Move(filePath, filePath.Substring(0, filePath.Length - 4) + ".bak");
Я подумал о настройке таймера для того, чтобы выполнить функцию перемещения позже, но мне кажется, что это, вероятно, будет очень неаккуратно и опасным способом обработки проблемы. Кроме того, количество времени, которое нужно подождать, может варьироваться от системы к системе. Поэтому я думаю, что должен быть лучший способ.
Я чувствую, что Filepath не является правильным в методе File.Delete. Вы можете проверить правильность пути? – Baskar
Попробуйте сначала перенести файл, а затем удалить последний файл из исходного местоположения. Http://stackoverflow.com/questions/5704982/file-move-fails-when-preceded-by-a-file-delete – keyboardP