Страницы

Поиск по вопросам

суббота, 4 января 2020 г.

Как можно редактировать имена txt файлов в архиве zip

#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). Так что достаточно минимально разобрать файл и внести правки.

Комментариев нет:

Отправить комментарий