多年来,最近又一次,我听到有人讨论说每个人都应该使用 Path.Combine 而不是用“\\”将字符串连接在一起,例如:
string myFilePath = Path.Combine("c:", "myDoc.txt");
// vs.
string myFilePath = "C:" + "\\myDoc.txt";
我没有看到前一个版本比后者提供的好处,我希望有人能解释一下。
用 构建路径Path.Combine
更具可读性且不易出错。您无需考虑目录分隔符字符(\\
或\
或/
在 unix 上,...),或者路径的第一部分是否以 . 结尾,\
以及路径的第二部分是否以\
.
您可以专注于重要的部分,即目录和文件名。这与String.Format
字符串连接具有相同的优势。
当您不知道第一个目录时(例如,它来自用户输入),您可能已经或C:\Directory
将会为您解决斜杠问题。不过,对于下一个参数,它确实有带有斜杠的怪癖。C:\Directory\
Path.Combine
其次,虽然对于大多数应用程序来说通常不是问题,但Path.Combine
您没有对平台目录分隔符进行硬编码。对于可以部署到 Windows 以外的其他操作系统的应用程序,这很方便。
其他平台可以使用不同的分隔符,例如/
代替\
so 不使用的原因\\
是独立于
在这种情况下,这并不重要,但你为什么不写:
string myFilePath = "C:\\myDoc.txt";
如果您正在使用路径变量并且不想检查反斜杠(或任何需要的斜杠,取决于平台),则 Path.Combine() 方法很有用:
string myFilePath = Path.Combine(path, filename);