小编use*_*681的帖子

我的申请有什么问题----大小是0,但我预计46806!

我是C#程序员.

现在,我正在使用ICSharpCode.SharpZipLib.dll在我当前的项目中创建一个zip文件.但是我发现当我在SECOND TIME点击按钮执行一个函数来创建一个zip文件时,应用程序会抛出异常,友好并且认真地告诉我"大小为零,但我预计46086".

我很困惑,我想知道为什么?当我第一次点击按钮时,我可以成功完成,没有任何错误.

我的相关代码如下:

internal void ThreadProc()
{
    try
    {
        ZipHelper.CreateZip(backupZipFile, Constants.HomeConstant, true);

        // do other things
    }

}
Run Code Online (Sandbox Code Playgroud)

CreateZip()函数的实现如下:

public static void CreateZip(string zipFileName, string sourceDirectory, bool recurse)
{
 FastZip zip = new FastZip();

 if (File.Exists(zipFileName))
 {
         File.Delete(zipFileName);
 }

 zip.CreateZip(zipFileName, sourceDirectory, true, "");
}
Run Code Online (Sandbox Code Playgroud)

现在,我将向您展示递归调用过程:

  1. 在"ActiveCheckManager"类中调用方法"UpdateAppAsync"
public void UpdateAppAsync(string masterConfig)
{
    this.masterConf = masterConfig;

    Thread actualThread = new Thread(new ThreadStart(UpdateApp));
    actualThread.IsBackground = true;
    actualThread.CurrentCulture = Thread.CurrentThread.CurrentCulture;
    actualThread.CurrentUICulture = Thread.CurrentThread.CurrentUICulture;
    actualThread.Start();
}
Run Code Online (Sandbox Code Playgroud)
  1. 异步调用UpdateApp函数,在UpdateApp方法中,它只会简单地调用UpdateDetail函数.
private void …
Run Code Online (Sandbox Code Playgroud)

c# sharpziplib icsharpcode

6
推荐指数
1
解决办法
1483
查看次数

标签 统计

c# ×1

icsharpcode ×1

sharpziplib ×1