#c_sharp #replace #zip
Есть zip архив. В нем 1000 txt файлов. Мне надо всех их редактировать(если можно то без распаковки, просто имя поменять им) Пример: name-lord первая замена ame-lord (Remove(0,1)) вторая замена ame-word (Replace("-l","-w")) и последняя same-word (Добавить букву в начале имени файла) Как сделать через c# ? В какой архив закинул там и будет выполнятся алгоритм....
Ответы
Ответ 1
Используя библиотеку DotNetZip, можно сделать так: Пример взять отсюда using (ZipFile zip2 = ZipFile.Read(ExistingZipFile)) { foreach (ZipEntry e in zip2) { if (e.FileName.EndsWith(".txt")) { var newname = e.FileName + "rename"; e.FileName = newname; } } zip2.Save(); } Переименовываем все файлы с расширением .txt, добавляю к существующему названию каждого файла суффикс rename Для вашего случая замените соответствующую строку на следующий код: var newname = e.FileName.Substring(1, s.Length - 1); // первая замена newname = newname.Replace("-l", "-w" ); // вторая замена newname = "s" + newname; // третья заменаОтвет 2
Согласно спецификации, имя файла хранится без сжатия в достаточно простой структуре Local File Header (4.3.7). Так что достаточно минимально разобрать файл и внести правки.
Комментариев нет:
Отправить комментарий