c# - DotNetZip 间歇性挂起

标签 c# dotnetzip

我有一个非常简单的程序,使用 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;

关于c# - DotNetZip 间歇性挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19598964/

相关文章:

c# - 如何设置对目录的完全控制

c# - 是否可以在 .NET 程序集中嵌入二进制数据

dotnetzip - 我如何知道 zip 文件是否受 dotnetzip 密码保护?

c# - 压缩在 C# 中创建的文件夹

c# - 将较小的 n 维数组放入较大数组的最快方法(二维图形类比 : paint rectangle on canvas)

c# - 磁盘簇/ block 大小与二进制文件读取有何关系?

c# - 如何以编程方式创建自定义评论标记

c# - 匹配 .net 正则表达式中的单个字符

c# - 删除应用程序的 DLL 依赖项

c# - DotNetZip 添加文件而不创建文件夹