在这两种方式中组合路径有什么区别?

时间:2013-06-17 11:24:39

标签: .net powershell

你能解释一下

之间的区别吗?
$attachment = [String]::Concat($workingDir,"\", $fileName)

$attachment = [IO.Path]::Combine($workingDir, $fileName)

在Powershell中组合路径时?

2 个答案:

答案 0 :(得分:11)

考虑$workingDir有反斜杠且$fileName有前导反斜杠的情况,例如:

$workingDir = "C:\foo\"
$fileName   = "\bar.txt"

2个命令将产生以下结果:

PS C:\> [String]::Concat($workingDir, "\", $fileName)
C:\foo\\\bar.txt
PS C:\> [IO.Path]::Combine($workingDir, $fileName)
\bar.txt

在PowerShell中,最好使用Join-Path

PS C:\> Join-Path $workingDir $fileName
C:\foo\bar.txt

答案 1 :(得分:4)

Path.Combine方法在语义上知道文件夹路径。例如,如果$workingDir"c:\",那么String.Concat示例将生成带有两个相邻反斜杠的路径。