2009-08-25 2 views
2

나는 꽤 많은 코드를 시도했지만 그 중 아무 것도 내가 원하는대로 작동하지 않는 것 같습니다.zlib 디렉터리 (경로 저장)

모든 경로를 저장하는 동안 (폴더 자체는 제외하고) 폴더의 모든 파일과 하위 디렉토리를 zlib (압축이 필요없고 데이터 청크에 모든 파일을 추가하는 것만으로 좋음) 어떻게 할 수 있습니까? 모든 것을 같은 폴더에 덤핑하는 대신 올바른 경로를 사용하십시오.

jvcl 코드가 있지만 하위 폴더를 압축하지 않습니다.

procedure TJvZLibMultipleMainForm.btnCompressClick(Sender: TObject); 
var 
    z : TJvZlibMultiple; 
begin 
    ForceDirectories(ExtractFilePath(edFilename.Text)); 
    z := TJvZlibMultiple.Create(nil); 
    Screen.Cursor := crHourGlass; 
    try 
    lblFilename.Caption := ''; 
    pbProgress.Position := 0; 
    z.OnProgress := DoProgress; 
    z.OnCompressingFile := DoCompressFile; 
    z.CompressDirectory(edSrcFolder.Text,false,edFilename.Text); 
    finally 
    z.Free; 
    Screen.Cursor := crDefault; 
    end; 
    pbProgress.Position := 0; 
    lblFilename.Caption := 'Ready'; 
end; 

답변

5

당신이 압축 순환을 활성화

z.CompressDirectory(edSrcFolder.Text,True,edFilename.Text); 

이 줄

z.CompressDirectory(edSrcFolder.Text,False,edFilename.Text); 

을 변경해야합니다 하위 폴더를 압축합니다.

// compresses a Directory (recursing if Recursive is true) 
// and saves the compressed result to FileName 
procedure CompressDirectory(Directory: string; Recursive: Boolean; FileName: string); overload; 

안녕.

+0

찬란한 작품처럼 매력적입니다! 정말 고마워요! – Tom

+0

나는이 사이트를 처음 접하니 +1, 투표 또는 순위에 영향을주는 것을 줄 수있는 방법이 있습니까? – Tom

+0

@Tom. 답변을 받아 들여 15 포인트를줍니다 ... –