tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルVB.NETでの圧縮(コマンドライン)について
記事No5244
投稿日: 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
**************************************************************************************

[ツリー表示へ]
タイトルRe: VB.NETでの圧縮(コマンドライン)について
記事No5326
投稿日: 2007/04/12(Thu) 13:28
投稿者キューブ
自己解決しました。

> szCmdLine = "a -t7z " & Chr(34) & Bk_FileName & ".7z" & Chr(34) & " " & Chr(34) _
> & CurMem & chr(34) & FileMem & " -mx1"

上記コードを↓に変更したらOKでした。

szCmdLine = "a -t7z " & Chr(34) & Bk_FileName & ".7z" & Chr(34) & " " & Chr(34) _
& CurMem & FileMem & Chr(34) & " -mx1"

[ツリー表示へ]