FC2ブログ

ファイル圧縮(コマンドプロンプト実行)について

ファイル圧縮(コマンドプロンプト実行)

指定したファイルを圧縮(Windows標準のCAB形式)します。
実際には、fncProcRunという関数がプロセスを実行しています。
(この関数については、プロセス実行(アプリケーションの実行)を参照して下さい。)

Windows標準のCab形式で圧縮するため、特にアーカイバなど外部DLLなどは不要でできるので、フリーソフトを利用できない環境(サーバとか)でもファイル圧縮が可能です。ただ、あまり高級な設定はできませんが、、、
またこのやり方は、コマンドプロンプトを実行しているので、コマンド作成部分を引数にすれば、圧縮("MakeCab"コマンド)に限らず、様々なコマンドを実行したい場合に利用できます。

'==============================================================================
'
' ファイル圧縮
'
' ------------------------------------------------------------------------
' 説明 : 指定したファイルを圧縮(CAB形式)する
'
' ------------------------------------------------------------------------
' 引数 : strSourceFile   圧縮元ファイル名(フルパス)
'    strCabFile    圧縮先ファイル名(フルパス)
'    blnCreateNoWindow ウィンドウ表示
'    strErrMsg     エラーメッセージ
' 戻値 : True:成功、False:失敗
'
'==============================================================================

Public Function fncCabMake(ByVal strSourceFile As String, ByVal strSourceFile As String, _
                ByVal blnCreateNoWindow As Boolean, ByRef strErrMsg As String) As Boolean
  Dim strMakeCabCmd As String
  Dim intRet As Integer
  Dim strRet As String = ""
  Dim strOldCabPath As String = ""
  Dim strNewCabPath As String = ""

  Try

    '--------------------------------------------------
    ' コマンド作成
    '--------------------------------------------------

    strMakeCabCmd = "makecab """ & strSourceFile & """ """ & strCabFile & """"


    '--------------------------------------------------
    ' コマンド実行
    '--------------------------------------------------

    'コマンド実行
    intRet = fncProcRun(System.Environment.GetEnvironmentVariable("ComSpec"), _
         "/c " & strMakeCabCmd, blnCreateNoWindow, _
         True, "", "", "", strErrMsg)


    '--------------------------------------------------
    ' 戻り値設定
    '--------------------------------------------------

    If intRet = 0 Then
      '正常終了
      Return True

    Else
      'エラーメッセージ設定
      strErrMsg = "ファイルの圧縮処理に失敗しました。" & vbCrLf & _
            "ファイル:" & strSourceFile & _
            "詳細は以下のとおり" & vbCrLf & _
            "--------------------------------------------------" & vbCrLf & _
            strErrMsg

       '異常終了
       Return False
    End If

  Catch ex As Exception

    '--------------------------------------------------
    ' エラーメッセージ設定
    '--------------------------------------------------

    strErrMsg = "ファイルの圧縮中にエラーが発生しました。" & vbCrLf & _
          "詳細は以下のとおり" & vbCrLf & _
          "--------------------------------------------------" & vbCrLf & _
          ex.Message


    '--------------------------------------------------
    ' 戻り値設定
    '--------------------------------------------------

    Return False

  End Try

End Function



【宣伝・・・(*´ω`)】

タイトルロゴ3

 システム葵では、個人様向けでも企業様向けでも、パソコン修理から、パソコン設定、パソコンの使い方、LAN環境構築、ソフトウェア開発まで、様々な実績がありますので、困ったことがあれば、お気軽にご相談下さい。
関連記事

テーマ : プログラミング
ジャンル : コンピュータ

コメントの投稿

非公開コメント

検索フォーム
最新記事
カテゴリ
全記事表示リンク

全ての記事を表示する

最新コメント
プロフィール

ITLife

Author:ITLife
システム葵新井聡太です。
東京都東村山市に生まれ、ここで育ち、ここで結婚し、システムエンジニア一筋で十数年やってきました。
ここでは主に、パソコンを中心にITに関わることを備忘録として残していきたいと思います。
少しでも来ていただいた方のお役に立てたら幸いです。
m(_ _)m

p.s
ここで紹介している内容は一例です。すべては、自己責任でお願いします。

カレンダー
07 | 2019/08 | 09
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
訪問数
月別アーカイブ
リンク