1
我正在翻譯windows上的.net應用程序到mac上的mono。我發現了一個正在發生的錯誤,我認爲這與在單聲道Mac上解釋反斜槓的方式有關。Mac上的單聲道路徑解釋是否與.net Windows版本不同?
Path.GetDirectoryName("Assembly\\file.dll")
對於返回「Assembly」的.net窗口返回空字符串的mac的mono。這是正常的行爲嗎?我是否可以用某種配置更改路徑解析方式,或者我需要用正斜槓替換每個反斜槓?
您可能需要使用平臺特定的分隔符。 http://msdn.microsoft.com/en-us/library/system.io.path.directoryseparatorchar%28v=vs.110%29.aspx – xxbbcc 2014-09-10 15:46:22
@xxbbcc顯然你是對的。使用庫SharpZipLib出現問題。 ZipEntry對象只用反斜槓創建路徑,而不考慮操作系統正在運行的路徑。我想我會使用Path.DirectorySeparatorChar的值替換這些路徑。 – mjsr 2014-09-10 15:56:18
用於.NET的各種庫可能不是針對Windows以外的平臺編寫的 - 我不清楚SharpZipLib的具體情況,但是如果某個庫硬編碼了特定分隔符,則它可能具有各種文件系統問題。 – xxbbcc 2014-09-10 16:19:43