Запретить повторное переименование - C#
Формулировка задачи:
Делаю бекап всех файлов в папке с расширением .txt .doc через File.Move. Если делаю так, то при повторном бекапе переименовывает уже переименованные (файлы бекап которых уже создан). Как запретить повторное переименование, а сделать чтобы пропускал файлы бэкапа и делал бекап новых файлов ?
Если делаю так (под 4.0), то если есть в папке хоть 1 файл бекапа, то выкидывает ошибку, что невозможно создать. Код не мой. В чем отличие между ними ?
public void FileBack(string FileName) { try { File.Move(FileName, FileName + ".backup"); } catch (Exception) { } } public void BackDirect(string patch) { List<string> List = new List<string>{ ".txt", ".doc" }; string[] Files = Directory.GetFiles(patch); string[] Direct = Directory.GetDirectories(patch); for (int i = 0; i < Files.Length; i++) { string extension = Path.GetExtension(Files[i]); if (List.Contains(extension)) { FileBack(Files[i]); } } for (int i = 0; i < Direct.Length; i++) { BackDirect(Direct[i]); } }
public void FileBack(string FileName) { File.Move(FileName, FileName + ".backup"); } public void BackDirect(string patch) { var BackFileName = new[] { ".txt", ".doc" }; string[] Files = Directory.GetFiles(patch); string[] Direct = Directory.GetDirectories(patch); for (int i = 0; i < Files.Length; i++) { string extension = Path.GetExtension(Files[i]); if (BackFileName.Contains(extension)) { FileBack(Files[i]); } } for (int i = 0; i < Direct.Length; i++) { BackDirect(Direct[i]); }
Решение задачи: «Запретить повторное переименование»
textual
Листинг программы
public static void FileBack(string filename) { try { File.Move(filename, filename + ".backup"); } catch (Exception) { } } public static void BackDirect(string path) { string[] extensions = new string[] { ".txt", ".doc" }; string[] files = Directory.GetFiles(path); foreach (string file in files) { if (Array.IndexOf<string>(extensions, Path.GetExtension(file).ToLower()) >= 0) { FileBack(file); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д