为了账号安全,请及时绑定邮箱和手机立即绑定

Directory.Exists 检查带有多个斜杠的路径

Directory.Exists 检查带有多个斜杠的路径

C#
拉风的咖菲猫 2022-06-19 09:52:07
合法路径是:@"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, ...);


查看完整回答
反对 回复 2022-06-19
  • 1 回答
  • 0 关注
  • 177 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信