2016-05-09 39 views
2

我在.zip壓縮文件中有一個名爲「The Shooting Star」.jpeg的文件。 當我嘗試通過ZipFile.ExtractToDirectoryZipArchiveEntry.ExtractToFile提取它時,我得到了System.ArgumentException: Illegal characters in path異常。C#ZipFile。如何提取或跳過名稱中包含無效字符的文件?

這樣的文件通過WinRar成功提取。

有沒有辦法避免使用ZipFile的異常,併成功地提取文件或至少跳過這樣的文件?

更新:

上傳的檔案說:The Archive

+0

爲什麼你的文件名中有引號?你不能將它們放在標準的Windows文件名中,所以應該很清楚問題出在哪裏。 –

+0

@DangerZone,那些是特殊符號,不是引號,所以它們工作。 – Murumuru

+0

啊,沒有注意到。 –

回答

0

可以重新格式化源名稱從SOURCENAME刪除非法字符。

var illegalChars = Path.GetInvalidFileNameChars(); 
var destName = sourceName.Where(x => !illegalChars.Contains(x)).Aggregate("", (current, x) => current + x); 

SOURCENAME是在存檔文件名,那麼你可以使用ZipArchiveEntry.ExtractToFile,並給它一個整流目標文件名。

+0

我根本無法訪問檔案中的檔案,這是問題。 – Murumuru

相關問題