|
|
1
109
你可以扩展。.\frag返回其完整路径,解析路径为:
|
|
2
89
你要做的是首先确定你的道路:
有了绝对基数,现在可以安全地调用。NET API
这为您提供了完全合格的路径
就我个人而言,这也不复杂,我鄙视依赖外部脚本的解决方案,这是一个简单的问题,通过
更新
|
|
|
3
26
Path.GetFullPath ,尽管(与Dan R的答案一样)这将为您提供整个路径。用法如下:
或者更有趣的是
这两者都会产生以下结果(假设您当前的目录是D:\):
请注意,此方法并不试图确定fred或frag是否确实存在。 |
|
|
4
24
|
|
|
5
13
此外,您可能已经发现,PowerShell的Resolve Path和Convert Path cmdlet对于将相对路径(包含“..”的路径)转换为驱动器限定的绝对路径非常有用,但如果引用的路径不存在,则会失败。 以下非常简单的cmdlet应该适用于不存在的路径。它将转换“fred\frog”。.\frag'到'd:\fred\frag',即使找不到'fred'或'frag'文件或文件夹(当前PowerShell驱动器为'd:')。
|
|
|
6
4
x0n's answer to Powershell: resolve path that might not exist? 将使路径正常化。如果路径不包含限定符,它仍将被规范化,但将返回相对于当前目录的完全限定路径,这可能不是您想要的。
|
|
|
7
3
这个图书馆不错: NDepend.Helpers.FileDirectoryPath . 编辑: 这是我想到的:
这样称呼它:
|
|
|
8
1
如果路径存在,并且您不介意返回绝对路径,则可以使用
|
|
|
9
1
这给出了相对于当前目录的路径:
出于某种原因,它们只在以下情况下有效
|
|
|
10
0
前任:
|
|
|
11
0
由于以下原因,这些答案都不完全可接受。
出于以下原因,我列出了这里列出的每种方法的预期结果,如下所示:
正确答案使用
我还做了其他几次尝试,因为当你是一名科学家时,你就是这么做的。
https://gist.github.com/Luiz-Monad/d5aea290087a89c070da6eec84b33742#file-normalize-path-ps-md |
|
|
12
-1
如果你需要摆脱它。.part,您可以使用系统。IO.DirectoryInfo对象。使用“fred\frog”。构造函数中的.\frag'。FullName属性将为您提供规范化的目录名。 唯一的缺点是它会给你整个路径(例如c:\test\fred\frag)。 |