我目前使用SharpZip api來處理我的zip文件條目。它適用於壓縮和解壓縮。雖然,我無法識別文件是否是zip文件。我需要知道是否有辦法檢測文件流是否可以解壓縮。最初我用過C#.net標識zip文件
FileStream lFileStreamIn = File.OpenRead(mSourceFile);
lZipFile = new ZipFile(lFileStreamIn);
ZipInputStream lZipStreamTester = new ZipInputStream(lFileStreamIn, mBufferSize);// not working
lZipStreamTester.Read(lBuffer, 0, 0);
if (lZipStreamTester.CanDecompressEntry)
{
LZipStreamTester每次都變爲空,if語句失敗。我嘗試了/沒有緩衝區。有人可以提供任何見解,爲什麼?我知道我可以檢查文件擴展名。我需要比這更明確的東西。我也知道,zip有一個魔術#(PK東西),但它不能保證它總是會在那裏,因爲它不是格式的要求。
而且我也讀到了.NET 4.5具有天然的zip支持,所以我的項目可能遷移到的,而不是sharpzip但我仍然需要沒有看到類似CanDecompressEntry這裏的方法/參數:http://msdn.microsoft.com/en-us/library/3z72378a%28v=vs.110%29
我的最後一招將使用try catch並嘗試解壓縮該文件。
我的問題的最簡單的形式是這樣的「在上面的代碼,爲什麼if語句返回false?」 – 2012-08-17 19:40:03