InfoQ

News

.NETアプリケーションから7-Zipの圧縮/解凍機能を使用する

作者 Abel Avram, 翻訳者 編集部 投稿日 2008年7月10日 午前12時57分

コミュニティ
.NET
トピック
Artifacts & Tools
タグ
7-Zip,
Code Project,
C#

ソフトウェア開発者のEugene Sichkarは、7-Zipアーカイビングアプリケーションへの.NET/C#インターフェースを入れたプロジェクトを(リンク)Code Projectで発表した。7-Zipは(リンク)様々なフォーマットでファイルをアーカイブ/アンアーカイブするのに使用するオープンソースのアプリケーションである。

7-Zipのサイトによると(リンク)、7-Zipはオープンソースのアーカイビングアプリケーションで、次のフォーマットをサポートしている。

    • 圧縮/解凍:7z、ZIP、GZIP、BZIP2、TAR
    •  解凍のみ:RAR、CAB、ISO、ARJ、LZH、CHM、MSI、WIM、Z、CPIO、RPM、DEB、NSIS

7-Zipは現在のところ、Windows 98からVistaにいたるまでのすべてのWindowsデスクトップバージョンで動作する。Linux/Unixへのポートに向けては取り組み中である。7-Zipは無料で、ライセンスはGNU LGPLライセンスになっており(リンク)、UnRARモジュールは若干の制限付きライセンスになっている(リンク)

ソフトウェア開発者のEugene Sichkarが7-Zipアプリケーション搭載の7-Zip DLLへのC#インターフェース(リンク)を作成したおかげで、.NETアプリケーションから7-Zipの圧縮/解凍機能を誰でも使えるようになった。Sichkarによると、以下のインターフェースが実装されている。

    • IProgress -  基本的なプログレスコールバック
    • IArchiveOpenCallback - アーカイブオープン・コールバック
    • ICryptoGetTextPassword - アーカイブのパスワード入力を促すコールバック
    • IArchiveExtractCallback - アーカイブ・コールバックからファイルを抽出
    • IArchiveOpenVolumeCallback - 追加のアーカイブ・ボリュームを開くコールバック
    • ISequentialInStream - 単純なリードオンリーのストリームインターフェース
    • ISequentialOutStream - 単純なライトオンリーのストリームインターフェース
    • IInStream - シーク機能を備えた入力ストリームインターフェース
    • IOutStream - 出力ストリームインターフェース
    • IInArchive - 主要アーカイブインターフェース

.NETインターフェースを使えば、コンソールラインやコンソールライン・ラッパーを介さずに、直接7-Zipの機能(7z. dll)にアクセスする。このインターフェースはCDDLライセンスで(リンク)リリースされている。C#ソースコードをダウンロードするには、Code Projectへの登録が(リンク)必要である。

原文はこちらです:http://www.infoq.com/news/2008/06/7-Zip-from-.NET

ブックマーク
digg+,
reddit+,
del.icio.us+,
dzone+,
Hatena

No comments

返信

特集コンテンツ一覧

トップスポーツチームの監督に教わる秘訣

この論文では、氏が発見した原則を要約し、その原則をいかにしてソフトウェア開発に応用するかを説明します。

事例研究:Dutch Railwaysのプロジェクトにおける分散拠点でのスクラム・プロジェクト

この記事では、私達がどのようにして大規模(240人月、10万行強)でインドとオランダの開発者も参加したスクラム・プロジェクトを成功させたのかを示しています。

Agile2008チーム参加レポート - 帰国そして変化

Agileカンファレンスに「参加者としてだけでなく、発表者として参加しよう」を掲げたチームgoyattomは、サブミッションを提出し、7つのセッションが日本から選択されました。参加者はカンファレンスで各々の発表や、各セッションへの参加、諸外国のエンジニアとの出会い、ステージ上で DearXPを熱演などの様々な思い出を抱えて、無事日本に戻ってきました。

SilverlightとJavaのインターオペラビリティ

マイクロソフトのRobert Bellが、SilverlightとJavaを使用したインターオペラビリティのシナリオを紹介し、サンプルコードを例にとってアーキテクチャの手引きを提供します。

Agile2008 チーム参加レポート - カンファレンス参加編

Agileカンファレンスに「参加者としてだけでなく、発表者として参加しよう」を掲げたチームgoyattomは、サブミッションを提出し、7つのセッションが日本から選択されました。サブミッションが選択された人、そうでない人も含めて、個々の目的意識の確認、膨大なプログラムから聞きたいセッションの選択、旅行の準備、プレゼンテーションの準備の期間を終えて、無事当日を迎えました。

Agile2008 チーム参加レポート - 動機/準備編

筆者はアジャイルソフトウェア開発についての年に一度の国際会議であるAgile2008に初めて参加してきました。今年の日本からの参加者の数は14名にも及び、発表者は5名、受け持ったセッションは8つに及び、例年にない活躍を見せました。なぜ今年のAgile2008では、これほど多くの日本人が参加し発表に至ったのか? そのレポートをお届けします。

Javaトラブルシューティングメルマガ総集編 2008/08~09

エスエムジーでは、Java全般を対象にしたトラブルシューティングサービス「JaTS」を提供しています。この記事では、前回に引き続き、JaTSにて蓄積したトラブル事例とその解決ノウハウの一部をお送りしている「Javaトラブルシューティングメールマガジン」(JTSMM)の総集編として、過去2ヶ月のトラブル事例と追加情報をダイジェストとして提供いたします。

モデル駆動アプローチがうまく機能しない(しなくなる)8 つの理由

この記事では、モデル駆動アプローチがうまく機能しない、または機能しなくなることによって期待した結果が実現できなくなる 8 つの理由について書きたいと思います。