2

你能解释一下有什么区别吗

$attachment = [String]::Concat($workingDir,"\", $fileName)

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

何时在 Powershell 中组合路径?

4

2 回答 2

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:\>加入路径 $workingDir $fileName
C:\foo\bar.txt
于 2013-06-17T11:40:11.320 回答
4

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

于 2013-06-17T11:28:37.463 回答