폴더

2012-06-16 2 views
7

내가 그렇게처럼폴더

TZipFile.ZipDirectoryContents() 

사용하려고 지퍼로 잠그는 :이 권리를 읽고있다하면 파일 이름이 테스트에 폴더 "workingdir"의 내용을 저장해야

TZipFile.ZipDirectoryContents('Test.PCF', WorkingDir); 

을 .pcf. 나는이 작업을 수행 할 때

는 지금은 오류 ::

Raised exception class EFOpenError with message Cannot open file 
...test.pcf. The process cannot access the file because its being used by another process." 

두 가지 나를 혼동 얻을 :

  1. 그것은 말한다 열려 파일을 할 수없는 그. 아직 test.pcf가 없습니다. 나는 이것이 그것을 창조하기를 바랐다.

  2. 파일에 액세스 할 수 없다고 말합니다. 아직 만들어지지 않았기 때문입니까? 이 함수를 사용하고 있습니까? 그렇다면 폴더 위치에서 zip 파일을 어떻게 만들 수 있습니까?

+1

을하지만 'Test.PCF이'내 것을 수 :

myZipFile := TZIpFile.Create; myZipFile.Open('c:\myfolder\newzipfile.zip', TZipMode.zmWrite); myZipFile.Close; myZipFile.Free; 

이 줄은 다음 작동합니다 :

는 프로그래밍 방식으로 zip 파일을 만들려면 지퍼를 치려고하는 디렉토리? –

답변

14

코드를 테스트 한 결과보고 한 것과 같은 방식으로 실패했습니다.

그런 다음 WinZip을 실행하여 수동으로 빈 zip 파일을 만들었습니다.

코드가 실행되어 정상적으로 실행되었습니다.

ZipDirectoryContents가 작동하려면 zip 파일이 이미 있어야합니다. 내가 TZipFile에 익숙하지 않다, 마찬가지로

TZipFile.ZipDirectoryContents('c:\myfolder\newzipfile.zip', WorkingDir);