¾ÐÃàÀ² ³ô°í ¾ÐÃà´ëºñ ÇØÁ¦¼Óµµ°¡ »¡¶ó¼ ¹é¾÷À̳ª ¾÷µ¥ÀÌÆ®ÆÄÀÏ ¹èÆ÷½Ã À¯¿ëÇÕ´Ï´Ù
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;
|