Exemplo n.º 1
0
        //Переименование 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
                {
                }
            }
        }
Exemplo n.º 2
0
        //Переименование 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
                    {
                    }
                }
            }
        }