2

C#.Net、VS2010でDotNetZip(最新バージョン)を使用した非常に単純なプログラムがあります。圧縮したファイルを保存しようとすると、ハングし始めました。エラーメッセージも何もありません。長い間問題なく動作していましたが、突然この断続的な症状が現れ始めました。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");
                }

            }
        }
    }
4

1 に答える 1

7

さらにグーグルで調べた後、バッファサイズのプロパティを増やすことを提案するリファレンスを見つけました。私はそれをしました、そしてそれは働いています。

zip.BufferSize = 1000000;
zip.CodecBufferSize = 1000000;
于 2013-10-28T12:32:45.017 に答える