[英]C# thread creating file with DotNetZip
我在工作線程中使用DotNetZip從zip文件中提取文件。 下面列出了線程功能。
如果需要,應該使用布爾變量shouldStop停止用戶提取。 現在的問題是:在沒有“ while(!shouldStop)”行的情況下,胎面可以正常工作。 但是,如果此行存在,甚至沒有其他代碼更改shouldStop值,線程將提取zip中的第一個文件並生成錯誤消息,指出第一個文件已存在(extract方法無法覆蓋現有文件)。 這意味着e不會移到下一個元素。
有人可以幫我解決這個問題嗎? 謝謝!
史蒂芬
public void ExtractFiles() // thread
{
var options = new ReadOptions { StatusMessageWriter = System.Console.Out };
using (ZipFile zip = ZipFile.Read(@folderName + @"\" + zipFileName, options))
{
foreach (ZipEntry e in zip.Entries)
{
// while (!shouldStop)
{
e.Extract(@"d:\temp\temp1");
}
}
}// using
}// public void ReadFileList()
您不應該在foreach
循環中使用while
循環。 只要把一個if
語句里面foreach
循環,並break
如果shouldStop
是true
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.