タイトル : VB.NETでの圧縮(コマンドライン)について 投稿日 : 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 ************************************************************************************** |