portability flaw : file separator (可移植性缺陷:文件分隔符)
問題產生原因: 主要是文件地址上采用硬編碼導致 如 “\\”
解決方案:
采用:Path.Combine 和 Path.DirectorySeparatorChar
例如:
FileStream f = File.Create(@"E:\Demo\SecurityDemo\SecurityDemo\MyFile.txt");
可改成
FileStream f1 = File.Create(Path.Combine( string.Format(@"E:{0}Demo{0}SecurityDemo{0}SecurityDemo{0}MyFile.txt", Path.DirectorySeparatorChar)));
參考文檔
目錄分隔符
Path.DirectorySeparatorChar 字段
public static readonly char DirectorySeparatorChar
提供平台特定的字符,該字符用於在反映分層文件系統組織的路徑字符串中分隔目錄級別。
在該字段中存儲的字符不能位於 InvalidPathChars 中。AltDirectorySeparatorChar 和 DirectorySeparatorChar 都適用於在路徑字符串中分隔目錄級別。
該字段的值在 Unix 上為斜杠(“/”),在 Windows 和 Macintosh 操作系統上為反斜杠(“\”)。
替換分隔符
Path.AltDirectorySeparatorChar
public static readonly char AltDirectorySeparatorChar
提供平台特定的替換字符,該替換字符用於在反映分層文件系統組織的路徑字符串中分隔目錄級別。
在此字段中存儲的字符不能位於 InvalidPathChars 中。該字段可被設置為與 DirectorySeparatorChar 相同的值。AltDirectorySeparatorChar 和 DirectorySeparatorChar 都適用於在路徑字符串中分隔目錄級別。
該字段的值在 Unix 上為反斜杠(“\”),在 Windows 和 Macintosh 操作系統上為斜杠(“/”)。
環境變量中路徑分隔符
Path.PathSeparator
public static readonly char PathSeparator
用於在環境變量中分隔路徑字符串的平台特定的分隔符。在基於 Windows 的桌面平台上,默認情況下該字段的值是分號 (;),但在其他平台上可能會有所不同。
卷分隔符
Path.AltDirectorySeparatorChar
public static readonly char VolumeSeparatorChar
提供平台特定的卷分隔符。該字段的值在 Windows 和 Macintosh 上為冒號(“:”),在 Unix 操作系統上為斜杠(“/”)。這對於分析像“c:\windows”或“MacVolume:System Folder”這樣的路徑最為有用。
