本文整理汇总了C#中System.IO.Compression.ZipStorer.AddStream方法的典型用法代码示例。如果您正苦于以下问题:C# ZipStorer.AddStream方法的具体用法?C# ZipStorer.AddStream怎么用?C# ZipStorer.AddStream使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.IO.Compression.ZipStorer
的用法示例。
在下文中一共展示了ZipStorer.AddStream方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: WriteEpubFilesToZip
//Epubにファイルを追加する(mimetypeを除く)
private static void WriteEpubFilesToZip(ZipStorer zip,string srcDir)
{
var files = Directory.GetFiles(srcDir, "*", SearchOption.AllDirectories); //全ファイル
var targetFiles = files.Where(e => Path.GetFileName(e).Equals("mimetype") != true) //mimetypeを除く
.Select(e => new FileInfo(e));
foreach (var targetFile in targetFiles)
{
var ext = targetFile.Extension;
var compression = new ZipStorer.Compression();
switch (ext)
{
case "jpg": //画像ファイルは圧縮しない(時間の無駄なので)
case "JPEG":
case "png":
case "PNG":
case "gif":
case "GIF":
compression = ZipStorer.Compression.Store;
break;
case "EPUB":
case "epub":
continue; //EPUBファイルは格納しない
default:
compression = ZipStorer.Compression.Deflate; //通常のファイルは圧縮する
break;
}
//対象を書き込む
using (var ms = new MemoryStream(File.ReadAllBytes(targetFile.FullName)))
{
ms.Position = 0; //ファイルの先頭からコピー
var fileNameInZip = GetRelPath(targetFile.FullName, srcDir); //zip内でのファイル名
zip.AddStream(compression, fileNameInZip, ms, DateTime.Now, string.Empty);
}
}
}
示例2: WriteFileToZip
//ファイルをzipファイルに書き込む
private static void WriteFileToZip(ZipStorer zip, FileInfo file, string fileNameInZip, ZipStorer.Compression compression)
{
using(var m =new MemoryStream(File.ReadAllBytes(file.FullName))) //対象をファイルから読み出す
{
m.Position = 0; //先頭からコピー
zip.AddStream(compression, fileNameInZip, m, DateTime.Now, String.Empty); //zipファイルに格納する
}
}
示例3: AddCritterType
void AddCritterType( ZipStorer zip, CritterType crType )
{
object datafile = null;
if( !OpenCurrentDatafile( ref datafile ) )
return;
List<CritterAnimationPacked> zipFiles = new List<CritterAnimationPacked>();
foreach( CritterAnimation crAnim in crType.Animations )
{
List<string> nameList = new List<string>();
List<byte[]> bytesList = new List<byte[]>();
List<DateTime> dateList = new List<DateTime>();
string crName = crType.Name + crAnim.Name;
for( int d = 0; d <= 5; d++ )
{
if( crAnim.Dir[d] == CritterAnimationDir.None )
continue;
string ext = ".FR" + (crAnim.Full ? "M" : d.ToString());
switch( LoadedMode )
{
case LoadModeType.Directory:
string filename = openDirectory.SelectedPath + Path.DirectorySeparatorChar + crName + ext;
if( File.Exists( filename ) )
{
zipFiles.Add( new CritterAnimationPacked(
ArtCrittersZip + crName + ext,
File.ReadAllBytes( filename ),
File.GetLastWriteTime( filename )
) );
}
break;
case LoadModeType.Zip:
ZipStorer zipDatafile = (ZipStorer)datafile;
MemoryStream stream = new MemoryStream();
zipDatafile.ExtractFile( crAnim.ZipData[d], stream );
zipFiles.Add( new CritterAnimationPacked(
ArtCrittersZip + crName + ext,
stream.ToArray(),
crAnim.ZipData[d].ModifyTime ) );
break;
case LoadModeType.Dat:
DAT dat = (DAT)datafile;
zipFiles.Add( new CritterAnimationPacked(
ArtCrittersZip + crName + ext,
dat.FileList[crAnim.DatData[d]].GetData(),
DateTime.Now ) );
break;
}
if( crAnim.Full )
break;
}
}
CloseCurrentDatafile( ref datafile );
foreach( CritterAnimationPacked crAnimPacked in zipFiles )
{
MemoryStream stream = new MemoryStream( crAnimPacked.Bytes, false );
zip.AddStream( ZipStorer.Compression.Deflate, crAnimPacked.Filename, stream, crAnimPacked.Date, "" );
}
}