Memory C#-DotNetZip抛出一个;无法访问已关闭的文件。”;提取到内存时发生异常

Memory C#-DotNetZip抛出一个;无法访问已关闭的文件。”;提取到内存时发生异常,memory,stream,zip,dotnetzip,Memory,Stream,Zip,Dotnetzip,我试图将一个文件提取到内存流中,但不断收到“无法访问已关闭的文件”异常。我正在使用DotNetZip,并具有以下堆栈跟踪: at System.IO.__Error.FileNotOpen() at System.IO.FileStream.get_Position() at Ionic.Zip.ZipEntry.SetFdpLoh() at Ionic.Zip.ZipEntry.get_FileDataPosition() at Ionic.Zip.ZipEntry.I

我试图将一个文件提取到内存流中,但不断收到“无法访问已关闭的文件”异常。我正在使用DotNetZip,并具有以下堆栈跟踪:

at System.IO.__Error.FileNotOpen()
   at System.IO.FileStream.get_Position()
   at Ionic.Zip.ZipEntry.SetFdpLoh()
   at Ionic.Zip.ZipEntry.get_FileDataPosition()
   at Ionic.Zip.ZipEntry.InternalOpenReader(String password)
   at Ionic.Zip.ZipEntry.OpenReader()
以下是引发错误的代码段:

            foreach (Ionic.Zip.ZipEntry zipEntry in zip.Entries)
            {
                if (zipEntry.FileName == "PS/DEANS.svg")
                {
                    //wait!
                }
                Logger.WriteToLog(zipEntry.FileName);
                string _extension = FileUtil.GetFileExtension(zipEntry.FileName);
                if (fileExtensionsLowerCase.Contains(_extension))
                {
                    string _fileName = FileUtil.GetFileName(zipEntry.FileName, "/", false).ToUpper();
                    string _folderName = FileUtil.GetParentFolder(zipEntry.FileName, "/").ToUpper();

                    // Extract the file to a memory stream 
                    using (var entry = zipEntry.OpenReader())
                    {
                        entry.LeaveOpen = false;
                        byte[] buffer = new byte[entry.Length];
                        entry.Read(buffer, 0, Convert.ToInt32(entry.Length));
                        byte[] digest = Common.GetSha256Digest(buffer);
                        svgCollection.Add(new SVG { fileName = _fileName, folderName = _folderName, fileHashDigest = digest });
                        digest = null;
                    }
                    _fileName = _folderName = _extension = null;
                }
            }
有没有人想过是什么导致了这个错误?我相当肯定,我在zip.Entries集合上使用foreach时,不会尝试两次打开同一个文件。我不确定这是DotNetZip问题还是我的代码

只有在尝试提取特定文件“PS/DEANS.svg”时,才会出现此问题