差分
このページの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(); | ||
} | } | ||
} | } |