DotNetZip 间歇性挂起
本文关键字:挂起 DotNetZip | 更新日期: 2023-09-27 18:36:58
我有一个非常简单的程序,使用DotNetZip(最新版本)和C#.Net,VS2010。当它尝试保存已压缩的文件时,它已开始挂起。没有错误消息,什么都没有。它运行了很长时间,然后突然开始出现这种间歇性症状。我在 MS Server 2003 上使用批处理系统运行它,但我在 Win7 上对其进行了测试。两个系统都会导致间歇性故障。大约 80% 的时间失败。
想法?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Ionic.Zip;
namespace ZipUpSourceFiles
{
class Program
{
static void Main(string[] args)
{
string YYYYMMM = DateTime.Today.ToString("yyyy-MMM");
string TargetPath = @"''winntdom'root'common'xxx'secure'Construction'Access'All Database Backup'" + YYYYMMM + @"_Backup'";
string SourcePath = @"''winntdom'root'common'xxx'secure'Construction'Access'YYYY'";
string ZipName=DateTime.Today.ToString("yy-MM-dd") + @".zip";
string ZipWithPath = TargetPath + ZipName;
if (!System.IO.Directory.Exists(TargetPath))
{
Console.WriteLine("Creating Directory");
System.IO.Directory.CreateDirectory(TargetPath);
}
if (System.IO.File.Exists(ZipWithPath))
{
Console.WriteLine("Deleting file");
System.IO.File.Delete(ZipWithPath);
}
using (ZipFile zip = new ZipFile())
{
Console.WriteLine("Zipping up Directories");
zip.AddDirectory(SourcePath); // recurses subdirectories
Console.WriteLine("Saving Directories {0}",ZipName);
zip.Save(ZipWithPath);
Console.WriteLine("Finishing Up");
}
}
}
}
经过进一步的谷歌搜索,我找到了一个建议增加缓冲区大小属性的参考。我做到了,它正在起作用。
zip.BufferSize = 1000000;
zip.CodecBufferSize = 1000000;