[英]Find Encoding type of DeflateStream
我有一個zip文件,其中包含一個csv文件。 我正在使用以下代碼讀取文件:
using (ZipArchive zipArchive = ZipFile.OpenRead(filePath))
{
var zipArchiveEntry = zipArchive.GetEntry("File.csv");
var zipEntry = zipArchiveEntry.Open();
...
}
zipEntry的類型為System.IO.Compreesion.Deflatestream。
我嘗試使用StreamReader.CurrentEncoding,但是它給出了錯誤的編碼值。
我現在正在使用此解決方案,
this.GetFileEncoding(zipEntry)
但在fileStrem.Length處獲取NotSupportedException。
如何找到zipEntry(File.csv)的正確編碼?
只要可以確保該文件實際上是cvs文件,然后在打開時使用流讀取器從條目的流中獲取內容即可
using (ZipArchive archive = ZipFile.OpenRead(filePath)) {
var entry = archive.GetEntry("File.csv");
if (entry != null) {
using (var reader = new StreamReader(entry.Open())) {
var csv = reader.ReadToEnd();
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.