合法路径是:@"S:\Personal Folders\UserA\test为什么Directory.Exists在下面的路径上返回 True?@"S:\Personal Folders\UserA\\\\\\\\\\\\\\\\test甚至更多的斜线。PS:我用 进行了测试File.Move,它没有将其识别为有效路径。
1 回答
梵蒂冈之花
TA贡献1900条经验 获得超5个赞
带有斜线的路径仍然满足绝对路径标准。
根据文档,
path 参数允许指定相对或绝对路径信息。
编辑:路径规范化参考
几乎所有传递给 Windows API 的路径都经过规范化。在规范化期间,Windows 执行以下步骤:
标识路径。
将当前目录应用于部分限定(相对)路径。
规范化组件和目录分隔符。
评估相对目录组件(. 代表当前目录,.. 代表父目录)。
修剪某些字符。
这种规范化是隐式发生的,但您可以通过调用 Path.GetFullPath 方法来显式执行此操作,该方法包装了对 GetFullPathName() 函数的调用。您还可以使用 P/Invoke 直接调用 Windows GetFullPathName() 函数。
编辑
默认情况下,并非每个函数都会对路径进行规范化。
File.Move
我自己给出了这条路径的错误。
另一方面,
var parsedPath = Path.GetFullPath("S:\\Personal Folders\\UserA\\\\\\\\\\\\\\\\test"); File.Move(parsedPath, ...);
- 1 回答
- 0 关注
- 177 浏览
添加回答
举报
0/150
提交
取消