2013-02-25 7 views
2

저는 한 달 정도 DotNetZip을 사용 해왔고 어떻게 작동했는지는 알고 있지만 오늘은 내 프로그램에서 내가 우둔한 새로운 문제가 발생하기 시작했습니다.DotNetZip을 사용하여 처리되지 않은 예외

압축 과정 중에이 오류가 발생하고 "프로그램 이름이 작동하지 않습니다."상자가 표시됩니다.

Unhandled Exception: System.IO.FileNotFoundException: s:\(file path)\filename.pdf 
at Ionic.Zip.SharedUtilities.GetFileLength(string fileName) 
at ionic.Zip.ZipEntry.MaybeUnsetCompressionMethodForWriting(int32 cycle) 
at Ionic.zip.Zipentry.WriteHeader(Stream s, Int32 cycle) 
at Ionic.zip.ZipEntry.Write(Stream s) 
at Ionic.zip.zipfile.save() 
at ZipAJob_Instant.ConsoleMain.Main() in C:\users\(my name)\Documents\visual studio 2012\projects\zipAjob_Instant\zipAJob_Win32.vb:line 71 

라인 (71) 내가 귀하의 의견에서 zip.save()

+0

's : \ (파일 경로) \ filename.pdf '가 존재하고 프로그램이 실행되는 ID가 파일에 대한 액세스 권한을 갖고 있는지 확인 했습니까? –

+1

프로그램을 실행하기 시작했을 때 존재했지만 오류가 나타난 후에는 폴더에 없었습니다. 나는 그 파일이 zip 프로세스 중에 (그 폴더에서 일하는 직원에 의해) 옮겨졌고 그것이 오류를 일으켰다 고 생각하고있다. – MaylorTaylor

+0

글쎄, 당신이 문제를 발견 한 것 같습니다. 파일을 Zip 파일에 추가하기 직전에 각 파일에 대해 File.Exists를 확인할 수 있습니다. 또는 모든 파일을 아카이브에 추가해야하는 경우 압축을 시작하기 전에 각 파일을 독점적으로 잠그고 파일을 추가 할 때 하나씩 해제하십시오. 압축하는 데 오랜 시간이 걸리는 경우 임시 위치에 복사 한 다음 사본을 압축 할 수 있습니다. –

답변

1

를 호출 할 곳을 의미, 내가 무슨 일하는 것은 얼마 전에 나에게 정확히 무슨 일이 있었는지입니다 걸릴.

파일 목록이 압축되어 메모리에 저장되었습니다. 이 예외가 던져 질 때까지 나는 하나씩 지퍼를 짚고 갈 것이다. 그 원인은 파일을 제거한 사람이 인데인데 그 목록이 있는데 보다 앞에이 있습니다. 나는 그것을 지울 기회가 있습니다. 이것은 btw라는 공유 폴더에서 발생했습니다.