文件夹路径末尾的反斜杠是否相关?

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:请使用尾部(反)斜线:-)