dotnet:vjslib_zip

差分

このページの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 bool Compress(string[] sourceFileNames, string zipFileName)+    public static void Compress(string[] sourceFileNames, string zipFileName)
     {     {
 +        // 読み込みバッファサイズを定義
 +        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 = 
 +                    System.IO.File.GetLastWriteTimeUtc(sourceFileNames[fileIdx]);
                 // UTCをグリニッジ標準時(GMT)形式の文字列に変換                 // UTCをグリニッジ標準時(GMT)形式の文字列に変換
                 string lastWriteTimeGMT = lastWriteTimeUtc.ToString("R");                 string lastWriteTimeGMT = lastWriteTimeUtc.ToString("R");
行 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, 0 buffer.Length)) > 0)
 +                {
 +                    // バッファ内容を圧縮して書き込む
 +                    zipOutputStream.write(buffer, 0, readSize);
 +                }
                                  
 +                // 圧縮元ファイルを閉じる
 +                sourseInputStream.close();
 +                // ZIPエントリを閉じる
 +                zipOutputStream.closeEntry();
             }             }
         }         }
         finally         finally
         {         {
-            +            // ZipOutputStreamを閉じる 
 +            zipOutputStream.close(); 
 +            zipFileStream.close();
         }         }
     }     }
  • dotnet/vjslib_zip.1243403118.txt.gz
  • 最終更新: 2019/05/18 02:23
  • (外部編集)