文件夹路径末尾的反斜杠是否相关?
Are backslashes at the end of folder paths relevant?
我正在编写一个程序,将所有文件和目录从源位置复制到目标位置。两个位置均由用户提供。
我只是想检查位置路径末尾是否有反斜杠“\”,当我决定 运行 一些测试时,据我所知,如果你告诉 c# 并不重要
File.Copy("C:\test", "D:\test")`
或
File.Copy("C:\test\", "D:\test\")`
我错了吗?文件路径末尾的反斜杠重要吗?
更新:
在 Windows 上,您显然不能将文件和文件夹命名为相同的名称,因此这无关紧要。您仍然应该使用(反)斜杠以获得良好的样式和跨平台兼容性。某些软件或库甚至可能依赖于它。
原答案:
文件夹通常以\
(或/
)结尾,因为可能有一个没有扩展名的文件,名为test
。例如,这两个可以共存(Linux [注意不同的大小写]):
文件夹:/Users/nikxda/Docouments/Test/
文件:/Users/nikxda/Docouments/test
如果您区分大小写,那么实际上您可以在 Windows 上忽略它。我仍然建议使用尾部斜杠,仅用于
- 澄清(指定它是一个文件夹)
- 良好的风格(遵循约定)
- 兼容性(其他软件、库等可能取决于它)
- 跨平台(OSX,...)
所以是的,如果引用文件夹,您应该始终在路径末尾使用(反)斜杠。
应该没什么区别,因为在 windows 上 - 您不能在同一个父目录中同时拥有文件夹 "test" 和名为 "test" 的不带扩展名的文件。
但是,在您的代码中添加尾部反斜杠会更加清晰,因为这不会留下猜测的余地。而且对于跨平台的目的也会更好。
例如,以 URI 为例,它绝对可以区分尾部斜线或无尾部斜线。
TLDR:请使用尾部(反)斜线:-)
我正在编写一个程序,将所有文件和目录从源位置复制到目标位置。两个位置均由用户提供。
我只是想检查位置路径末尾是否有反斜杠“\”,当我决定 运行 一些测试时,据我所知,如果你告诉 c# 并不重要
File.Copy("C:\test", "D:\test")`
或
File.Copy("C:\test\", "D:\test\")`
我错了吗?文件路径末尾的反斜杠重要吗?
更新:
在 Windows 上,您显然不能将文件和文件夹命名为相同的名称,因此这无关紧要。您仍然应该使用(反)斜杠以获得良好的样式和跨平台兼容性。某些软件或库甚至可能依赖于它。
原答案:
文件夹通常以\
(或/
)结尾,因为可能有一个没有扩展名的文件,名为test
。例如,这两个可以共存(Linux [注意不同的大小写]):
文件夹:/Users/nikxda/Docouments/Test/
文件:/Users/nikxda/Docouments/test
如果您区分大小写,那么实际上您可以在 Windows 上忽略它。我仍然建议使用尾部斜杠,仅用于
- 澄清(指定它是一个文件夹)
- 良好的风格(遵循约定)
- 兼容性(其他软件、库等可能取决于它)
- 跨平台(OSX,...)
所以是的,如果引用文件夹,您应该始终在路径末尾使用(反)斜杠。
应该没什么区别,因为在 windows 上 - 您不能在同一个父目录中同时拥有文件夹 "test" 和名为 "test" 的不带扩展名的文件。
但是,在您的代码中添加尾部反斜杠会更加清晰,因为这不会留下猜测的余地。而且对于跨平台的目的也会更好。
例如,以 URI 为例,它绝对可以区分尾部斜线或无尾部斜线。
TLDR:请使用尾部(反)斜线:-)