VB Script to C# - Извлечь файл .arch - PullRequest
0 голосов
/ 18 февраля 2020

Я должен извлечь файлы типа .arch. В старом скрипте VB это делается с помощью команд wscript.shell.

Set shellobj = wscript.createobject ("wscript.shell")
cmdline = "wzunzip -d -n " & source & " " & destination & "\"
cmdexec = shellobj.run((cmdline), 1, true)

Я конвертирую это в c#, поэтому я использовал следующий код для извлечения файлов:

ZipFile.ExtractToDirectory(source, destination);//Unzip file

Но эта строка вызывает исключение для .arch тип файлов.

"Была предпринята попытка переместить указатель файла перед началом файла."

Есть ли способ извлечь файлы типа .arch в * 1017? *. Мой файл этого типа c.

1 Ответ

0 голосов
/ 18 февраля 2020

Вы прочитали MS Docs?

https://docs.microsoft.com/en-us/dotnet/api/system.io.compression.zipfile.extracttodirectory?view=netframework-4.8#System_IO_Compression_ZipFile_ExtractToDirectory_System_String_System_String_System_Text_Encoding_

Под исключением IO:

Каталог, указанный в destinationDirectoryName уже существует.

-или-

Имя записи в архиве пусто, содержит только пробел или содержит хотя бы один недопустимый символ.

-или-

Извлечение записи архива приведет к созданию файла, который находится за пределами каталога, указанного в destinationDirectoryName. (Например, это может произойти, если имя записи содержит родительские методы доступа к каталогу.)

-или-

Архивная запись для извлечения имеет то же имя, что и запись, которая уже была извлечена из тот же архив.

Так что в основном,

  • Ваш каталог уже существует? Если так, то не должно.
  • Пусто ли имя файла? Если это так, их не должно быть, им требуются имена.
  • Есть ли в пути к файлу назначения какие-либо символы пути к файлу (например, '..')? Если это так, они не должны.
  • У любого из файлов есть одно и то же имя? Если это так, они не должны.

На самом деле это не выглядит странно, и Microsoft редко что-то упускает. Единственное, что я вижу в документах, это то, что существует перегрузка для типа кодирования, но это касается кодировки zip-файла, а не файлов внутри него ...

Это похоже на файл поврежден. Этот вопрос, кажется, подчеркивает вашу проблему: https://superuser.com/questions/457271/identifiying-a-zip-file-that-is-not-really-a-zip-file

Может быть, когда файлы .ARCH сжимаются, подпись файла теряется? Или файл как-то поврежден?

...