差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
| dotnet:vjslib_zip [2009/05/27 14:45] – ともやん | dotnet:vjslib_zip [2019/05/18 02:23] (現在) – 外部編集 非ログインユーザー | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| ====== Visual J# ライブラリによるZIP圧縮 ====== | ====== Visual J# ライブラリによるZIP圧縮 ====== | ||
| + | [C#] | ||
| <code csharp> | <code csharp> | ||
| using System.IO; | using System.IO; | ||
| 行 8: | 行 9: | ||
| public class ZipUtility | public class ZipUtility | ||
| { | { | ||
| - | public static | + | public static | 
| { | { | ||
| + | // 読み込みバッファサイズを定義 | ||
| + | const int BUF_SIZE = 8192; | ||
| + |  | ||
| // ZipOutputStreamを開く | // ZipOutputStreamを開く | ||
| FileOutputStream zipFileStream = new FileOutputStream(zipFileName); | FileOutputStream zipFileStream = new FileOutputStream(zipFileName); | ||
| 行 26: | 行 30: | ||
| // ***** ZIPエントリのファイル更新時刻を設定 ***** | // ***** ZIPエントリのファイル更新時刻を設定 ***** | ||
| // ファイルのタイムスタンプを世界協定時刻(UTC)にて取得 | // ファイルのタイムスタンプを世界協定時刻(UTC)にて取得 | ||
| - | DateTime lastWriteTimeUtc = System.IO.File.GetLastWriteTimeUtc(sourceFileNames[fileIdx]); | + | DateTime lastWriteTimeUtc = | 
| + |  | ||
| // UTCをグリニッジ標準時(GMT)形式の文字列に変換 | // UTCをグリニッジ標準時(GMT)形式の文字列に変換 | ||
| string lastWriteTimeGMT = lastWriteTimeUtc.ToString(" | string lastWriteTimeGMT = lastWriteTimeUtc.ToString(" | ||
| 行 41: | 行 46: | ||
| zipOutputStream.putNextEntry(zipEntry); | zipOutputStream.putNextEntry(zipEntry); | ||
|  |  | ||
| + | // 圧縮元ファイルを開く | ||
| + | FileInputStream sourseInputStream = | ||
| + | new FileInputStream(sourceFileNames[fileIdx]); | ||
| + |  | ||
| + | // 読み込みバッファを作成 | ||
| + | byte[] buffer = new byte[BUF_SIZE]; | ||
| + | // 読み込みサイズを保持 | ||
| + | int readSize; | ||
| + | // ファイルをすべて読み込む | ||
| + | while((readSize = sourceInputStream.read(buffer, | ||
| + | { | ||
| + | // バッファ内容を圧縮して書き込む | ||
| + | zipOutputStream.write(buffer, | ||
| + | } | ||
|  |  | ||
| + | // 圧縮元ファイルを閉じる | ||
| + | sourseInputStream.close(); | ||
| + | // ZIPエントリを閉じる | ||
| + | zipOutputStream.closeEntry(); | ||
| } | } | ||
| } | } | ||
| finally | finally | ||
| { | { | ||
| - |  | + |  | 
| + | zipOutputStream.close(); | ||
| + | zipFileStream.close(); | ||
| } | } | ||
| } | } | ||