dotnet:vjslib_zip

文書の過去の版を表示しています。


Visual J# ライブラリによるZIP圧縮

using System.IO;
using java.io;
using java.util;
using java.util.zip;
 
public class ZipUtility
{
	public static bool Compress(string[] sourceFileNames, string zipFileName)
	{
		// ZipOutputStreamを開く
		FileOutputStream zipFileStream = new FileOutputStream(zipFileName);
		ZipOutputStream zipOutputStream = new ZipOutputStream(zipFileStream);
 
		try
		{
			for (int fileIdx = 0; fileIdx < sourceFileNames.Length; fileIdx++)
			{
				// ZIP書庫に追加するファイル名を取得
				string fileName = Path.GetFileName(sourceFileNames[fileIdx]);
 
				// ZIPエントリを作成
				ZipEntry zipEntry = new ZipEntry(fileName);
 
				// ***** ZIPエントリのファイル更新時刻を設定 *****
				// ファイルのタイムスタンプを世界協定時刻(UTC)にて取得
				DateTime lastWriteTimeUtc = System.IO.File.GetLastWriteTimeUtc(sourceFileNames[fileIdx]);
				// UTCをグリニッジ標準時(GMT)形式の文字列に変換
				string lastWriteTimeGMT = lastWriteTimeUtc.ToString("R");
				// java.util.Date(String s)のコンストラクタにてDateインスタンスを生成
				Date lastWriteTime = new Date(lastWriteTimeGMT);
				// Date.getTime()にてエポックタイム(1970/01/01 00:00:00からのミリ秒)を取得
				long lastWriteEpochTime = lastWriteTime.getTime();
				// ZIPエントリのファイル更新時刻として設定
				zipEntry.setTime(lastWriteEpochTime);
 
				// ZIPエントリの圧縮メソッド(DEFLATED)を設定
				zipEntry.setMethod(ZipEntry.DEFLATED);
				// ZipOutputStreamにZIPエントリを追加
				zipOutputStream.putNextEntry(zipEntry);
 
 
			}
		}
		finally
		{
 
		}
	}
}
  • dotnet/vjslib_zip.1243330087.txt.gz
  • 最終更新: 2019/05/18 02:23
  • (外部編集)