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

合法路径是:@"S:\Personal Folders\UserA\test

为什么Directory.Exists在下面的路径上返回 True?

@"S:\Personal Folders\UserA\\\\\\\\\\\\\\\\test

甚至更多的斜线。

PS:我用 进行了测试File.Move,它没有将其识别为有效路径。


拉风的咖菲猫
浏览 178回答 1
1回答

梵蒂冈之花

带有斜线的路径仍然满足绝对路径标准。根据文档,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, ...);
打开App,查看更多内容
随时随地看视频慕课网APP