2017-02-25 78 views
-2

請告訴我,我該如何實現Encoding.GetEncoding(「cp866」)? 在從存檔導出過程中,俄語符號未正確顯示。使用特定的編碼讀取ZipArchive

public static class ZipArchiveExtension 
{ 
    public static void ExtractToDirectory(this ZipArchive archive, string destinationDirectoryName, bool overwrite) 
    { 
     if (!overwrite) 
     { 
      archive.ExtractToDirectory(destinationDirectoryName); 
      return; 
     } 
     foreach (ZipArchiveEntry file in archive.Entries) 
     { 
      string completeFileName = Path.Combine(destinationDirectoryName, file.FullName); 
      if (file.Name == "") 
      { 
       Directory.CreateDirectory(Path.GetDirectoryName(completeFileName)); 
       continue; 
      } 
      file.ExtractToFile(completeFileName, true); 
     } 
    } 
} 

FileStream zipToOpen = new FileStream(zipPath, FileMode.Open); 
ZipArchive archive = new ZipArchive(zipToOpen); 
ZipArchiveExtension.ExtractToDirectory(archive, extractPath, true); 
zipToOpen.Dispose(); 

如System.IO.Compression:ZipFile.ExtractToDirectory(zipPath,extractPath,Encoding.GetEncoding( 「CP866」));

回答