そこでフリーソフトを使って簡単に行う方法を紹介する。
ソフトは「Lhasa」。ドラッグアンドドロップで簡単に解凍できる有名なソフトだが、実はコマンドラインでも使える。LHASA.TXTにパラメータの説明が載っているので試したところ見事に指定したフォルダに解凍させることができた。
コマンドラインサンプル:
1. C:\work\hoge.lzhを指定したフォルダ(例:C:\test)に解凍する場合
lhasa.exe -dC:\test -a- -e- -q -f C:\work\hoge.lzh
※パスに空白が含まれる時は"で囲む
lhasa.exe -d"C:\My Documents\hoge" ....
2. C:\work\hoge.lzh を同じ場所に解凍する場合
lhasa.exe -d- -a- -e- -q -f C:\work\hoge.lzh
パラメータの意味
-d(指定フォルダ) : 指定したディレクトリに出力
-d- : アーカイブと同じディレクトリに解凍
-a- : 出力先にそのままファイルを出力
-e- : 解凍先フォルダを開かない
-q : 途中経過表示をしない
-f : 解凍先に更新されたファイルがあっても確認せず上書き
これを元にVB2005で作ってみると
'/// LZH,ZIPファイルを指定したフォルダに解凍 /////
Public Sub Decompression(ByVal srcFile As String, ByVal desFolder As String)
'srcFile : 圧縮ファイル名
'desFolder : 解凍先フォルダ
'---------------------------
Dim para As String = "-d" & Chr(34) & desFolder & Chr(34) & " -a- -e- -q -f "
Dim exeFile As String = "C:\lhasa\lhasa.exe"
Dim proc As New Process
proc.StartInfo.FileName = exeFile
proc.StartInfo.Arguments = para & Chr(34) & srcFile & Chr(34)
proc.Start()
proc.WaitForExit()
End Sub