表紙 > VB6 サンプル >

VB6

lzhファイルに圧縮する

 

注意:以下のサンプルを実行するにはシステムにUnlha32.dllがインストールされている必要があります。

 

以下の関数LhaPressを使うと、ファイルやフォルダをlha形式(拡張子lzh)のファイルに圧縮することができる。

使用例

Call LhaPress("C:\test\A.txt", "C:\Press.lzh")

VB6対応 

Private Declare Function Unlha Lib "Unlha32.dll" (ByVal hWnd As Long, ByVal szCmdLine As String, ByVal szOutput As String, ByVal dwSize As Long) As Long

'■LhaPress
'■機能:ファイルやフォルダをLha形式で圧縮する
'■引数:SourceFileName 対象となるファイル名またはフォルダをフルパスで指定。
'■ ワイルドカード可。
'■ フォルダ指定の場合 C:\Folder のように指定すると上位フォルダも含むフォルダツリーごと圧縮されます。
'■ 同じようでも C:\Folder\と指定した場合は上位フォルダを含まないフォルダツリーごと圧縮されます。
'■ TargetFolderName 出力するLhaファイルのフルパス
'■ hWnd 省略可。オーナーウィンドウのハンドル
'■ Form1.hWndのように指定してください。指定されたウィンドウは解凍動作中に操作できなくなります。

Public Sub LhaPress(SourceFileName As String, TargetFileName As String, Optional hWnd As Long)

    Dim strSwitch As String
    Dim strOptions As String
    Dim strCommandLine As String
    Dim strBuffer As String * 1024


    strSwitch = "a"
    strOptions = "-x1 -r2"
    strCommandLine = strSwitch & " " & strOptions & " """ & TargetFileName & """ """ & SourceFileName & """"

    Call Unlha(hWnd, strCommandLine, strBuffer, Len(strBuffer))

End Sub