2012-03-27 1 views
0

У меня есть программа, которая распаковывает загруженные файлы через DotNetZip, когда загрузка будет завершена. Я получаю путь сохранения из .txt-файла, потому что его нужно извлечь в определенную папку в папке-системе. Существует одна папка для файлов без определенной папки сохранения.
Программа работает хорошо, но иногда я получаю сообщение об ошибке, говорящее:Ошибка при попытке извлечь с помощью DotNetZip

Часть пути не может быть найден!

bei System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) bei System.IO.Directory.InternalCreateDirectory(String fullPath, String path, DirectorySecurity dirSecurity) bei System.IO.Directory.CreateDirectory(String path, DirectorySecurity directorySecurity) bei System.IO.Directory.CreateDirectory(String path) bei Ionic.Zip.ZipEntry.ValidateOutput(String basedir, Stream outstream, String& outFileName) bei Ionic.Zip.ZipEntry.InternalExtract(String baseDir, Stream outstream, String password) bei Ionic.Zip.ZipEntry.Extract(String baseDirectory, ExtractExistingFileAction extractExistingFile) bei dvw002.Form1.backgroundWorker1_DoWork(Object sender, DoWorkEventArgs e)

Я не знаю, почему это происходит, потому что 95% файлов извлекаются нормально, и путь существует ...

+3

Вы должны определить эти «иногда», получить трассировку стека и любое исключение, которые выбрасываются с сообщениями об ошибках, связанных с ним, и разместить его здесь для любого из нас, чтобы понять, что происходит не так. –

+0

сообщение об ошибке всегда одно и то же, оно отправляется мне по электронной почте ... Нет конкретного файла, который не извлекается, я действительно не могу сказать, в чем разница с нормально извлеченными файлами. – asdasdad

+1

. Вы должны расширить свое письмо на включают StackTrace исключения. – Jehof

ответ

1

Только предположение, но я иногда получаю проблемы с другими программами zip, когда извлеченный путь превышает максимальную длину (это удивительно короткое).

Naming Files, Paths, and Namespaces on MSDN.

+0

На самом деле это была проблема в начале, но я уже исправил это, разрезав конец пути, так что имена папок (которые были более 300 символы) имеют максимальную длину 150 – asdasdad

+0

Ok cool @ user1286332, если вы еще не знаете (но угадываете свой комментарий, вероятно, уже есть), также стоит дважды проверить общую длину пути, так как глубина длинных папок может быть проблемой - не только имя каждой отдельной папки. например У меня всегда есть проблемы с сохранением в папке проекта в моих документах C: \ Documents and Settings \ Alex.Key \ My Documents \ Visual Studio 2010 \ Projects \, поскольку путь уже очень длинный, прежде чем я даже начну извлекать материал в архивах. –

+0

Это то, что я сделал, путь к файлу составляет около 80 символов, поэтому, если имя моего файла не превышает 150 символов, оно должно быть разрешено ... и указанный файл, который не был извлечен, на самом деле составляет всего 30 символов. .. Я думаю, что это не проблема ... было гораздо больше имен файлов, извлеченных без проблем ... – asdasdad

 Смежные вопросы

  • Нет связанных вопросов^_^