日期:2014-05-17  浏览次数:20776 次

ICSharpCode.SharpZipLib 判断压缩后的文件是否可用?
ICSharpCode.SharpZipLib 判断压缩后的文件是否可用?

http://www.icsharpcode.net/OpenSource/SharpZipLib/Download.aspx

使用 ICSharpCode.SharpZipLib 压缩完文件后怎样去简单验证下 ,压缩文件是否完整??

------解决方案--------------------
引用:
你这方法人类一般可以理解!!

我就觉得他的方法我可以很容易理解!

你可以仅仅读取解压下的一点点byte[],例如仅仅读取10K字节。

但是无论如何,所谓“判断是否完整”是准确的吗?不解压的话如何断言是否完整。断言不完整也许容易,例如我说的“读取10K字节”。但是要断言完整,不完全解压就不太可能。

将问题从务实操作变成了苛求完美,那么就改变了态度,不会有更简单的答案。
------解决方案--------------------

public bool ValidZipFile(string TargetFile)
        {
            try
            {
                ZipInputStream s = new ZipInputStream(File.OpenRead(TargetFile.Trim()));
                ZipEntry theEntry;

                while ((theEntry = s.GetNextEntry()) != null)
                {
                    string fileName = Path.GetFileName(theEntry.Name);
                    
                    if (fileName != String.Empty)
                    {
                        int size = 2048;
                        byte[] data = new byte[2048];
                        while (true)
                        {
                            size = s.Read(data, 0, data.Length);
                            if (size <= 0) break;
                        }

                    }
                }
                s.Close();