Alpha Prime (alphaprimeap) wrote,
Alpha Prime
alphaprimeap

Category:
  • Mood:

Распаковка zip-архивов в C#: кодировка символов в именах файлов

Столкнулась с неприятной проблемой при распаковке zip-архивов в Шарпе. И стандартные средства, и DotNetZip превращали кириллицу в именах файлов в нечитаемые кракозябры. Ручная установка кодировки не помогала. Более того, кодировку не мог определить и декодер на сайте Артемия Лебедева - постоянно выдавал разные результаты. Кракозябры мешали мне при удалении файлов - надо распаковать файлы во временную папку, провести над ними некоторые операции и потом удалить. И из-за кракозябр не удавалось удалить некоторые файлы - вылезала ошибка "Не удалось найти часть пути".
Решение получилось не очень удобным, но работающим: нужно использовать архиватор 7-zip и при распаковке обращаться напрямую к нему, к его экзешнику. Именно так. Только так и сработало. SevenZipSharp не работал, а прямое обращение к экзешнику сработало. Использовала этот код: https://stud-work.ru/c-7-zip-primer-ispolzovaniya-7z-v-net

P.S. Кое-где, похоже, кодировка была сбита при формировании архива, т.к. пара файлов распаковалась с битой кодировкой в именах. Остальные файлы с кириллицей в именах распаковались нормально, безо всяких кракозябр.
Tags: 7-zip, c, cyrillic, zip, программирование
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments