複数のファイルでcabファイルを作成するには?

解決


かんとく  2009-11-04 20:12:23  No: 102057  IP: [192.*.*.*]

お世話になっております。

VB6,XPです。

makecabを使って、cabファイルを作成しようと思います。

Shell "makecab c:\test.txt c:\test.cab"
だと、1つのファイルから1つのcabファイルができますが、複数のファイルで1つのcabファイルを作るには、どうしたらよいのでしょうか?

調べてところ、/F  を使うとありましたが、使い方がよく分かりませんでした。

よろしくお願いします。

編集 削除
魔界の仮面弁士  2009-11-04 22:20:00  No: 102058  IP: [192.*.*.*]

> VB6,XPです。
> makecabを使って、cabファイルを作成しようと思います。

どのバージョンの MakeCab なのかちょっと気になります。
まぁ、どれを使っても使い方はほぼ一緒なのですけれども。


> 複数のファイルで1つのcabファイルを作るには、どうしたらよいのでしょうか?
「ファイルの一覧」を記したテキストファイルを作り、それを /F で読み込ませる事になります。
(一覧の拡張子は伝統的に *.lst にする事が多いですが、ファイル名は何でも OK です)


> 調べてところ、/F  を使うとありましたが、使い方がよく分かりませんでした。
下記が参考になるかと思います。
http://www.syuhitu.org/other/makecab.html

編集 削除
かんとく  2009-11-05 11:02:50  No: 102059  IP: [192.*.*.*]

ありがとうございます。

教えていただいたサイトを参考に次のような処理してみました。

c:\にtest.jpgという画像ファイルを置きました。

次にファイルtest.lstを、c:\に作成し、
"c:\test.jpg"
という内容にして保存しました。

VB6で、
Shell "makecab /F c:\test.lst"
を実行しましたが、cabファイルが作成されませんでした。

もしかしたらどこかに作成されているのかもしれませんが、cabファイルを作成する場所を指定できないようなので、どこに作成されたのか分かりません。

処理に間違えがあれば教えてください。

すみませんがよろしくお願いします。

編集 削除
魔界の仮面弁士  2009-11-05 11:41:07  No: 102060  IP: [192.*.*.*]

「makecab /F c:\test.lst」の場合、出力先は  MsgBox CurDir()  で
示される「カレントディレクトリ」になります。
(カレントディレクトリは、ChDrive & Chdir ステートメントで変更できます)

実行後は、カレントディレクトリを「.」で表すと、
  .\disk1\1.cab  …  生成されたキャビネット
  .\setup.inf  … セットアップ情報
  .\setup.rpt  …  MAKECAB の処理結果レポート
のように出力されることになります。


もし、inf/rptファイルが不要なら、/D オプションを用いて、
/D RptFileName=NUL /D InfFileName=NUL などを指定することもできます。

出力されるキャビネット ファイル名を "sample.cab" にしたいなら、
/D CabinetNameTemplate=sample.cab を指定することもできます。

出力先のフォルダを変更したければ、/D DiskDirectoryTemplate=C:\test\ と
指定することもできます。

なお分割指定時には、連番部に "*" を含めてください(先述の URL を参照)。


# もはや VB とは無関係の内容になってしまいましたが。

編集 削除
かんとく  2009-11-05 19:56:39  No: 102061  IP: [192.*.*.*]

ありがとうございます。

/F  と  /D MaxDiskSize  を使って、無事に複数のファイルでcabファイルを作成することができました。

ありがとうございました。

編集 削除