//Переименование Xml файлов public static void RenameFiles(List <string> FileNames, string Target, string Type, ref ProgressBar progressBar, bool SaveDuplicate = false) { //Временная директориz и папка для сохранения string target = Target + "Переименованные файлы\\"; //Решение проблем с прошлой итерацией while (Directory.Exists(target)) { target += "Новые Переименованные файлы\\"; } try { Directory.CreateDirectory(target); } catch { } string temp = target + "__tmp__"; if (Type == ".zip") { Directory.CreateDirectory(temp); } if (FileNames.Count() > 0) { foreach (string filename in FileNames) { progressBar.Value++; //прогресс бар //Получение данных об объекте Item_flat flat = new Item_flat(); if (Type == ".xml") { flat = XmlProcessing(XDocument.Load(filename)); } if (Type == ".zip") { try { clrDir(temp); //чистим временную папку ZipFile.ExtractToDirectory(filename, temp); //распаковываем основной архив //Распаковка вложениых архивов foreach (string arhive_1lv2 in Directory.EnumerateFiles(temp, "*.zip", SearchOption.AllDirectories)) { ZipFile.ExtractToDirectory(arhive_1lv2, temp); //Получили XML foreach (string xml_filename in Directory.EnumerateFiles(temp, "*.xml", SearchOption.AllDirectories)) { flat = XmlProcessing(XDocument.Load(xml_filename)); } } } catch { } } bool SaveThis = true; // нужно ли ещё сохранять этот файл //Устранение непригодных символов string newName = ""; foreach (char ch in flat.address + ", " + flat.numFlat + Type) { if (ch == '/') { newName += '-'; } else { newName += ch; } } if (File.Exists(target + newName)) { try { Item_flat taretFlat = XmlProcessing(XDocument.Load(target + newName)); if (!flat.Equals(taretFlat)) { File.Copy(filename, target + "Другой " + newName); continue; } else if (SaveDuplicate) { if (File.Exists(target + "Дубликат " + newName)) { continue; } File.Copy(filename, target + "Дубликат " + newName); continue; } } catch { continue; } } //копирование try { if (SaveThis) { File.Copy(filename, target + newName); } } catch { } } } if (Directory.Exists(temp)) { clrDir(temp); try { Directory.Delete(temp); } catch { } } }
//Переименование Xml файлов public static void RenameXML(List <string> FileNames, string Target, ref ProgressBar progressBar, bool SaveDuplicate = false) { //Временная директориz и папка для сохранения string target = Target + "Переименованные файлы\\"; //Решение проблем с прошлой итерацией while (Directory.Exists(target)) { target += "Новые Переименованные файлы\\"; } try { Directory.CreateDirectory(target); } catch { } if (FileNames.Count() > 0) { foreach (string xml_filename in FileNames) { progressBar.Value++; //прогресс бар //Получение данных об объекте Item_flat flat = XmlProcessing(XDocument.Load(xml_filename)); bool SaveThis = true; // нужно ли ещё сохранять этот файл //Устранение непригодных символов string newName = ""; foreach (char ch in flat.address + ", " + flat.numFlat + ".xml") { if (ch == '/') { newName += '-'; } else { newName += ch; } } if (File.Exists(target + newName)) { try { Item_flat taretFlat = XmlProcessing(XDocument.Load(target + newName)); if (!flat.Equals(taretFlat)) { File.Copy(xml_filename, target + "Другой " + newName); continue; } else if (SaveDuplicate) { if (File.Exists(target + "Дубликат " + newName)) { continue; } File.Copy(xml_filename, target + "Дубликат " + newName); continue; } } catch { continue; } } //копирование try { if (SaveThis) { File.Copy(xml_filename, target + newName); } } catch { } } } }