タイトル | : VB.NETでの圧縮(コマンドライン)について |
記事No | : 5244 |
投稿日 | : 2007/03/30(Fri) 18:02 |
投稿者 | : キューブ |
【OS】Windows XP SP2 【VBのVer】VB.NET2003 はじめまして。キューブです。 VBでの開発は初心者です。また、コマンドラインを使用するのは初めてです。
現在、VB.NETで7-zipによる圧縮をしようと試みています。 圧縮の動作には入り、圧縮されたファイルも出来るのですが、出来たファイルを 解凍すると、対象ファイルではなく、作成中のVBプロジェクトと同じ階層にあるbinフォルダ の内容が圧縮されています。
おそらくコマンドラインの引数がうまく渡っていないのだと思い 色々と調べたのですが、その解決方法がわかりません。 過去ログに同様の質問があり、解決されていたのですが自分にはわかりませんでした。。。
圧縮部分のコードは以下の様に作成しました。 Bk_FileName '作成する圧縮ファイル名 CurMem '"C:\バックアップ\"(これは不変です) FileMem '対象ファイル名(ファイル作成時の変数をそのまま使用しています)
対象ファイル・圧縮ファイルともに日本語と'_'が含まれています。
よろしくご教授ください。
************************************************************************************** Sub SevenZ() 'ファイル圧縮
Dim hWnd As Integer Dim szCmdLine As String Dim szOutput As String Dim szsize As Integer Dim SevenZ1 As Integer
szOutput = Space(1024) szsize = 1024 hWnd = Nothing CurMem = GetDirectoryMemberSplit(Bk_FileName, DirMem, FileMem)
szCmdLine = "a -t7z " & Chr(34) & Bk_FileName & ".7z" & Chr(34) & " " & Chr(34) _ & CurMem & chr(34) & FileMem & " -mx1"
SevenZ1 = SevenZip(hWnd, szCmdLine, szOutput, szsize)
If SevenZ1 <> 0 Then MsgBox("圧縮に失敗しました" & szOutput, MsgBoxStyle.OKOnly, "圧縮処理結果") Else MsgBox("圧縮完了", MsgBoxStyle.OKOnly, "圧縮処理結果") End If
End Sub **************************************************************************************
|