我是C#程序員。我的申請有什麼問題----大小是0,但我預計46806!
現在,我正在使用ICSharpCode.SharpZipLib.dll在我當前的項目中創建一個zip文件。但是當我點擊SECOND TIME執行一個函數來創建一個zip文件時,我發現應用程序會拋出一個異常,很友好並且認真地告訴我「Size爲零,但我預計46086」 。
我很困惑,我想知道爲什麼?當我第一次點擊按鈕時,我可以成功地完成任何錯誤。
我的相關代碼如下:
internal void ThreadProc()
{
try
{
ZipHelper.CreateZip(backupZipFile, Constants.HomeConstant, true);
// do other things
}
}
的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, "");
}
現在,我會告訴你的遞歸調用進程:
- 「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(); }
- 調用UpdateApp函數異步,在UpdateApp方法,它將只簡單地調用UpdateDetail功能。
- 的worker.UpdateApp將調用UpdateDetail只(字符串,UpdateCategory)。
private void UpdateDetail(string masterConfig, string category) { IUpdate worker = new HP.ActiveCheckLocalMode.UpdateEngine.UpdateManager(); worker.UpdateApp(masterConf); }
private void UpdateDetail(string masterConfig, UpdateCategory cat) { UpdateThread updateThread = new UpdateThread(this, cat); updateThread.MasterConfig = masterConfig; updateThread.ThreadProc(); }
這是調用進程。當我第二次點擊更新按鈕時,它會拋出異常,你能幫我嗎?非常感謝你。
從哪裏拋出異常(即:哪一行實際上是打破的)?堆棧跟蹤可能會有所幫助。 – cHao 2010-08-06 07:59:30
也許你需要處理一些東西,或關閉zip文件。什麼是異常的類型? – leppie 2010-08-06 08:00:28