本文整理汇总了C#中ICSharpCode.SharpZipLib.Zip.ZipFile.GetOutputStream方法的典型用法代码示例。如果您正苦于以下问题:C# ZipFile.GetOutputStream方法的具体用法?C# ZipFile.GetOutputStream怎么用?C# ZipFile.GetOutputStream使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ICSharpCode.SharpZipLib.Zip.ZipFile
的用法示例。
在下文中一共展示了ZipFile.GetOutputStream方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ModifyEntry
void ModifyEntry(ZipFile workFile, ZipUpdate update)
{
workFile.WriteLocalEntryHeader(update);
long dataStart = workFile.baseStream_.Position;
// TODO: This is slow if the changes don't effect the data!!
if ( update.Entry.IsFile && (update.Filename != null) ) {
using ( Stream output = workFile.GetOutputStream(update.OutEntry) ) {
using ( Stream source = this.GetInputStream(update.Entry) ) {
CopyBytes(update, output, source, source.Length, true);
}
}
}
long dataEnd = workFile.baseStream_.Position;
update.Entry.CompressedSize = dataEnd - dataStart;
}
示例2: ModifyEntry
private void ModifyEntry(ZipFile workFile, ZipUpdate update)
{
workFile.WriteLocalEntryHeader(update);
long position = workFile.baseStream_.Position;
if (update.Entry.IsFile && (update.Filename != null))
{
using (Stream stream = workFile.GetOutputStream(update.OutEntry))
{
using (Stream stream2 = this.GetInputStream(update.Entry))
{
this.CopyBytes(update, stream, stream2, stream2.Length, true);
}
}
}
long num2 = workFile.baseStream_.Position;
update.Entry.CompressedSize = num2 - position;
}
示例3: AddEntry
void AddEntry(ZipFile workFile, ZipUpdate update)
{
Stream source = null;
if ( update.Entry.IsFile ) {
source = update.GetSource();
if ( source == null ) {
source = updateDataSource_.GetSource(update.Entry, update.Filename);
}
}
if ( source != null ) {
using ( source ) {
long sourceStreamLength = source.Length;
if ( update.OutEntry.Size < 0 ) {
update.OutEntry.Size = sourceStreamLength;
}
else {
// Check for errant entries.
if ( update.OutEntry.Size != sourceStreamLength ) {
throw new ZipException("Entry size/stream size mismatch");
}
}
workFile.WriteLocalEntryHeader(update);
long dataStart = workFile.baseStream_.Position;
using ( Stream output = workFile.GetOutputStream(update.OutEntry) ) {
CopyBytes(update, output, source, sourceStreamLength, true);
}
long dataEnd = workFile.baseStream_.Position;
update.OutEntry.CompressedSize = dataEnd - dataStart;
if ((update.OutEntry.Flags & (int)GeneralBitFlags.Descriptor) == (int)GeneralBitFlags.Descriptor)
{
ZipHelperStream helper = new ZipHelperStream(workFile.baseStream_);
helper.WriteDataDescriptor(update.OutEntry);
}
}
}
else {
workFile.WriteLocalEntryHeader(update);
update.OutEntry.CompressedSize = 0;
}
}
示例4: AddEntry
private void AddEntry(ZipFile workFile, ZipUpdate update)
{
Stream source = null;
if (update.Entry.IsFile)
{
source = update.GetSource();
if (source == null)
{
source = this.updateDataSource_.GetSource(update.Entry, update.Filename);
}
}
if (source != null)
{
using (source)
{
long length = source.Length;
if (update.OutEntry.Size < 0L)
{
update.OutEntry.Size = length;
}
else if (update.OutEntry.Size != length)
{
throw new ZipException("Entry size/stream size mismatch");
}
workFile.WriteLocalEntryHeader(update);
long position = workFile.baseStream_.Position;
using (Stream stream2 = workFile.GetOutputStream(update.OutEntry))
{
this.CopyBytes(update, stream2, source, length, true);
}
long num3 = workFile.baseStream_.Position;
update.OutEntry.CompressedSize = num3 - position;
if ((update.OutEntry.Flags & 8) == 8)
{
new ZipHelperStream(workFile.baseStream_).WriteDataDescriptor(update.OutEntry);
}
return;
}
}
workFile.WriteLocalEntryHeader(update);
update.OutEntry.CompressedSize = 0L;
}