web-dev-qa-db-ja.com

複数のファイルの.cabファイルをすばやく作成するための最良の方法は何ですか?

複数のファイルからなる.cabファイルを作りたいのですが。私が出会ったチュートリアルやガイドは、いくつかのファイルにのみ役立ちます。

5
Brendan Long

ウィキペディア によると:

CABファイル形式では、次の圧縮アルゴリズムを使用できます。

  • [〜#〜] deflate [〜#〜]– Zipファイル形式の作者であるPhilKatzによって発明されました
  • 量子圧縮–量子アーカイバの作者であるDavidStaffordからライセンス供与
  • [〜#〜] lzx [〜#〜]– JonathanForbesとTomiPoutanenによって発明され、Forbesが入社したときにMicrosoftに渡されました

そのため、すべての.Zipコンプレッサーは、最近のすべてのWindowsバージョンでネイティブなファイルであっても、ファイルを開く必要があります。

ただし、記事に示されているように、.cabファイルを作成するアーカイバは、その形式が原因でほとんどありません。次の list によると、これらのプログラムは.cabファイルを書き込むことができます。

  • ZipGenius
  • AlZip
  • IZArc
  • PowerArchiver
  • TugZip
  • WinAce
0

Windowsの組み込みコマンドmakecabを使用できますが、最初にファイルリストを生成する必要があります。

dir C:\FolderName /s /b /a-d > c:\temp\files.txt

これにより、C:\ FolderNameディレクトリ内のすべてのファイルが一覧表示され、フルパス名のテキストファイルとして保存されます。次に、files.txtファイルを使用してcabファイルを作成します。

makecab /d CabinetName1=test.cab /D DiskDirectoryTemplate=C:\temp /f c:\temp\files.txt

上記のコマンドは、前に生成されたファイルリストを使用して、C:\ Tempフォルダーにtest.cabファイルを生成します。

追加の役立つリファレンス:Microsoftキャビネットリファレンス および makecab.exeの詳細

7

先週、プロジェクトのために急いでCABファイルを作成する必要がありました。私本当にがやりたかったのは、既存のCABファイル内の単一のファイルを置き換えて、CABのフォルダー構造を維持することでした。私はすぐに、これを適切に行うための簡単な7ZipまたはWinZipの方法がなく、成功の道は、必要な変更されたファイルを含む新しいCABファイルを生成することであることに気付きました。フォルダ内のすべてのファイルからCABファイルを作成するこのツールは、私にとっては見事に機能しました。作成するのはMakeCabユーティリティのGUIフロントエンドです。ここで説明します: https://yieldreturnpost.wordpress.com/2016/06/22/free-tool-to-create-cab-file-from -folder / GitHubソースはここにあります: https://github.com/sapientcoder/CabMaker

まず、Expandコマンドを使用して、既存のCABファイルからフォルダー構造にファイルを抽出しました。

expand -F:* \\MyServer\ServerMigration2020\ExportedConfigurationSourceFiles\MyOriginalCABFile.cab \\MyServer\CaptureSV\ServerMigration2020\Cabfiles\CabSourceFiles 

このExpandコマンドは、CABファイル内のすべてのファイルを抽出し、フォルダー構造を保持したまま、フォルダーCabSourceFilesに配置しました。

これで、CabMakerGUIを実行してCABファイルを作成する準備が整いました。これは、ファイルとフォルダーのみの「プレーンな」CABファイルであり、インストーラーファイルのセットの一部などの追加のヘッダーを含むものではないことに注意してください。

CabMaker C#コードをダウンロードして、Visual Studio2019で実行しただけです。GUIが登場しました。ソースフォルダー([展開]コマンドの出力フォルダー)、ターゲットフォルダー(結果のCABファイルが配置される場所)、および目的のCABファイル名を入力し、[CABの作成]ボタンをクリックすると、実行されました。結果のCABファイルは美しく機能し、アプリに正常にインポートされ、正しく設定された構成になりました。

CabMaker GUI screen shot

さて、なぜCABファイルを作成する必要があったのですか?ベンダーアプリを古いサーバーから新しいサーバーに移行し、アプリの「エクスポート」機能を使用して、新しいサーバーのアプリに「インポート」できる現在の状態の構成ファイルをキャプチャしていました。別の方法は、コンシューマーアプリの不格好なGUIを使用して手動でナビゲートし、変更されたファイル名とフォルダー名に数百の変更を加えることでした。すべての設定を保持しているCAB内のXMLファイルでファイルとフォルダーを変更する方がよいと判断しました。サーバーのカットオーバーの日にすべてがうまくいきました。時々私たちは幸運になります。 GitHubの寄稿者であるSapientCoderに大きな称賛を!

0
Developer63