簡體   English   中英

C#線程使用DotNetZip創建文件

[英]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如果shouldStoptrue

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM