귀하는 손님 이십니다
로그인
회원가입
  
  델마당 공식 은행계좌
  하나은행 227-910235-83607
  예금주 이상국(운영진)
프로젝트 게시판
투표게시판
델마당소개
기초부터 활용까지! 델파이 교육 - 데브기어
 광고문의 :
옄猷뚯떎 옄猷뚯떎 입니다.
글내용 - 옄猷뚯떎
 삤뵂냼뒪 臾대즺 7Zip 븬異 - TSevenZipVCL 0.76
踰덇컻
(꽌깭슧)
2018-02-08 삤쟾 11:46:27
1368회 조회


첨부파일 다운로드
SevenZipVCL_076.zip
븬異뺤쑉 넂怨 븬異뺣鍮 빐젣냽룄媛 鍮⑤씪꽌 諛깆뾽씠굹 뾽뜲씠듃뙆씪 諛고룷떆 쑀슜빀땲떎

7za.DLL 9.20 泥⑤

븬異/빐젣 UDF

Function xZip(Const pSourceFile, pDestFile_7z: String): Boolean;
// pSourceFile  : 븬異뺣긽 썝蹂명뙆씪 ex) C:\Source\*.*
// pDestFile_7z : 깮꽦븷 븬異뺥뙆씪紐 ex) D:\DIR\archive.7z
//
// ex) xZip('C:\Source\*.*', 'D:\DIR\archive.7z'); // 쟾泥댄뙆씪
//     xZip('C:\Source\Sale.hwp', 'D:\DIR\archive.7z'); // 떒씪뙆씪
//     xZip('C:\Source\uSale.pas;C:\Source\uSale.dfm', 'D:\DIR\archive.7z'); // 蹂듭닔뙆씪
Var
  SL: TStringList;
  i: Integer;
begin
  Result := True;
  SL := TStringList.Create;
  SL.Clear;
  SL.Delimiter := ';';
  SL.DelimitedText := pSourceFile;
  Cursor := crHourGlass;
  Try
    Try
      With SevenZip1 do begin
        LZMACompressStrength := ULTRA;
        LZMACompressType := LZMA;
        Files.Clear;
        AddRootDir := ExtractFiledir(SL.Strings[0]); // 븬異뺣긽 뤃뜑 ex) C:\Source
        AddOptions := [AddRecurseDirs, AddSolid];
        For i := 0 to SL.Count - 1 do begin
          Files.AddString(SL.Strings[i]);
        end;
        SZFileName := pDestFile_7z;
        Result := (Add = 0);
      end;
    Except
      on E: Exception do Result := False;
    end;
  Finally
    SL.Free;
    Cursor := crDefault;
  end;
end;

Function xUnZip(Const pSourceFile_7z, pExtractDir: String): Boolean;
// 븬異뺥빐젣뒗 LZMA + LZMA2 吏썝 (7za.DLL 9.20) 
// LZMA2 諛⑹떇 硫떚肄붿뼱/硫떚벐젅뱶 솢슜
// pSourceFile_7z : 빐젣븷 븬異뺥뙆씪紐 ex) D:\DIR\archive.7z
// pExtractDir    : 빐젣븷 뤃뜑       ex) C:\Source
//
// ex) xUnZip('D:\DIR\archive.7z', 'C:\Source');
begin
  Result := True;
  Try
    With SevenZip1 do begin
      Files.Clear;
      ExtrBaseDir := pExtractDir; // 뤃뜑媛 뾾쑝硫 옄룞 깮꽦
      ExtractOptions := [ExtractOverwrite];
      SZFileName := pSourceFile_7z;
      if Extract = 0 then List
      else Result := False;
    End;
  Except
    on E: Exception do Result := False;
  end;
end;