Копирование папок целиком, а не только вложенных в них - C#
Формулировка задачи:
private static void DirectoryCopy(string sourceDirName, string destDirName, bool copySubDirs) { // Получение субдиректорий. DirectoryInfo dir = new DirectoryInfo(sourceDirName); if (!dir.Exists) { throw new DirectoryNotFoundException( "Source directory does not exist or could not be found: " + sourceDirName); } DirectoryInfo[] dirs = dir.GetDirectories(); // если папки назначения нет, то создать. if (!Directory.Exists(destDirName)) { Console.WriteLine(destDirName); Directory.CreateDirectory(destDirName); } // Копировать файлы в папку назначения. FileInfo[] files = dir.GetFiles(); foreach (FileInfo file in files) { string temppath = Path.Combine(destDirName, file.Name); file.CopyTo(temppath, true); } // если копируется с поддиректориями. if (copySubDirs) { foreach (DirectoryInfo subdir in dirs) { string temppath = Path.Combine(destDirName, subdir.Name); DirectoryCopy(subdir.FullName, temppath, copySubDirs); } } }
Решение задачи: «Копирование папок целиком, а не только вложенных в них»
textual
Листинг программы
private static void makeZip() { DateTime currentDate = DateTime.Now; //создание имени архива (дата и время) string BackupPath = @"C:\Users\Denis\Desktop\BackUps" + DateTime.Now.ToString("yy.MM.dd HH.mm.ss") + ".zip"; //создание временной папки Console.WriteLine("Zip start"); if (!Directory.Exists("temp")) { Directory.CreateDirectory("temp"); } else { Directory.Delete("temp",true); Directory.CreateDirectory("temp"); } //копирование файлов для архивации во временную папку foreach (string str in DirList) { Console.WriteLine(str); string strnew = str.Remove(0, 2); strnew = strnew.Replace(@"", "_"); DirectoryCopy(str, @"temp"+strnew, true); } ZipFile.CreateFromDirectory("temp", BackupPath); Console.WriteLine("Zip finished"); } //копирование папок для архивации во временную private static void DirectoryCopy(string sourceDirName, string destDirName, bool copySubDirs) { // Получение субдиректорий. DirectoryInfo dir = new DirectoryInfo(sourceDirName); if (!dir.Exists) { throw new DirectoryNotFoundException( "Source directory does not exist or could not be found: " + sourceDirName); } DirectoryInfo[] dirs = dir.GetDirectories(); // если папки назначения нет, то создать. if (!Directory.Exists(destDirName)) { Console.WriteLine(destDirName); Directory.CreateDirectory(destDirName); } // Копировать файлы в папку назначения. FileInfo[] files = dir.GetFiles(); foreach (FileInfo file in files) { string temppath = Path.Combine(destDirName, file.Name); file.CopyTo(temppath, true); } // если копируется с поддиректориями. if (copySubDirs) { foreach (DirectoryInfo subdir in dirs) { string temppath = Path.Combine(destDirName, subdir.Name); DirectoryCopy(subdir.FullName, temppath, copySubDirs); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д