dotnet:vjslib_zip

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

次のリビジョン
前のリビジョン
dotnet:vjslib_zip [2009/05/26 18:28] – 作成 ともやん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) 
-+    
- // ZipOutputStreamを開く +        // 読み込みバッファサイズを定義 
- FileOutputStream zipFileStream = new FileOutputStream(zipFileName); +        const int BUF_SIZE = 8192; 
- ZipOutputStream zipOutputStream = new ZipOutputStream(zipFileStream); +         
-  +        // ZipOutputStreamを開く 
- try +        FileOutputStream zipFileStream = new FileOutputStream(zipFileName); 
- +        ZipOutputStream zipOutputStream = new ZipOutputStream(zipFileStream); 
- for (int fileIdx = 0; fileIdx < sourceFileNames.Length; fileIdx++) +         
- +        try 
- // ZIP書庫に追加するファイル名を取得 +        
- string fileName = Path.GetFileName(sourceFileNames[fileIdx]); +            for (int fileIdx = 0; fileIdx < sourceFileNames.Length; fileIdx++) 
-  +            
- // ZIPエントリを作成 +                // ZIP書庫に追加するファイル名を取得 
- ZipEntry zipEntry = new ZipEntry(fileName); +                string fileName = Path.GetFileName(sourceFileNames[fileIdx]); 
-  +                 
- // ***** ZIPエントリのファイル更新時刻を設定 ***** +                // ZIPエントリを作成 
- // ファイルのタイムスタンプを世界協定時刻(UTC)にて取得 +                ZipEntry zipEntry = new ZipEntry(fileName); 
- DateTime lastWriteTimeUtc = System.IO.File.GetLastWriteTimeUtc(sourceFileNames[fileIdx]); +                 
- // UTCをグリニッジ標準時(GMT)形式の文字列に変換 +                // ***** ZIPエントリのファイル更新時刻を設定 ***** 
- string lastWriteTimeGMT = lastWriteTimeUtc.ToString("R"); +                // ファイルのタイムスタンプを世界協定時刻(UTC)にて取得 
- // java.util.Date(String s)のコンストラクタにてDateインスタンスを生成 +                DateTime lastWriteTimeUtc = 
- Date lastWriteTime = new Date(lastWriteTimeGMT); +                    System.IO.File.GetLastWriteTimeUtc(sourceFileNames[fileIdx]); 
- // Date.getTime()にてエポックタイム(1970/01/01 00:00:00からのミリ秒)を取得 +                // UTCをグリニッジ標準時(GMT)形式の文字列に変換 
- long lastWriteEpochTime = lastWriteTime.getTime(); +                string lastWriteTimeGMT = lastWriteTimeUtc.ToString("R"); 
- // ZIPエントリのファイル更新時刻として設定 +                // java.util.Date(String s)のコンストラクタにてDateインスタンスを生成 
- zipEntry.setTime(lastWriteEpochTime); +                Date lastWriteTime = new Date(lastWriteTimeGMT); 
-  +                // Date.getTime()にてエポックタイム(1970/01/01 00:00:00からのミリ秒)を取得 
- // ZIPエントリの圧縮メソッド(DEFLATED)を設定 +                long lastWriteEpochTime = lastWriteTime.getTime(); 
- zipEntry.setMethod(ZipEntry.DEFLATED); +                // ZIPエントリのファイル更新時刻として設定 
- // ZipOutputStreamにZIPエントリを追加 +                zipEntry.setTime(lastWriteEpochTime); 
- zipOutputStream.putNextEntry(zipEntry); +                 
-  +                // ZIPエントリの圧縮メソッド(DEFLATED)を設定 
-  +                zipEntry.setMethod(ZipEntry.DEFLATED); 
- +                // ZipOutputStreamにZIPエントリを追加 
- +                zipOutputStream.putNextEntry(zipEntry); 
- finally +                 
- +                // 圧縮元ファイルを開く 
-  +                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 
 +        
 +            // ZipOutputStreamを閉じる 
 +            zipOutputStream.close(); 
 +            zipFileStream.close(); 
 +        
 +    }
 } }
 </code> </code>
  
  • dotnet/vjslib_zip.1243330087.txt.gz
  • 最終更新: 2019/05/18 02:23
  • (外部編集)