【发布时间】:2013-03-16 13:32:30
【问题描述】:
我无法通过 Google 教授找到有关此的任何信息,所以我在这里。获取给定的路径名并将其粘贴到 Windows 资源管理器中。在我的代码中发现生成带有额外“。”的路径的错误后,我偶然发现了这一点。在目录之前的路径名\分隔符...
@"C:\\pathto.\file.ext"
在代码中,.NET 会在调用File.Create 时接受路径并生成一个文件,但是在这个路径:
@"C:\\pathto\file.ext"
将C:\\pathto.\file.ext 复制到Windows 资源管理器的地址栏中并查看“.”消失并带你去C:\\pathto\file.ext
.NET 和 Windows 的正常行为是否不会导致问题,因为 '.'传递给文件操作时,.NET 和 Windows 都将其删除。真正的问题是数据库中的所有文件的文件名都带有'.\',但存在于没有'.\'的路径中......并且File.Exists()也可以工作,尽管路径不是'真实的物理位置...
这是怎么回事?
【问题讨论】:
-
首先,您可以更轻松地复制和粘贴路径,例如使用。
@"C:\Users\Matt"格式(“逐字字符串”)。 -
也许 Windows 禁止以
.开头或结尾的文件名(和文件夹)? -
是的,这很正常。尝试创建一个以句号结尾的文件夹也是如此。
-
你知道
.是当前目录的简写,就像..是父目录的简写一样,对吧? en.wikipedia.org/wiki/Path_(computing) -
@ColonelPanic 以
.开头在Win32 上很好,但你不能使用资源管理器来创建这样的文件。这些文件在与基于 unix 的软件交互时很常见,例如.git、.htaccess、...
标签: c# .net windows file-io pathname