.net 以这两种方式组合路径之间有什么区别?
你能解释一下两者的区别吗.net 以这两种方式组合路径之间有什么区别?,.net,powershell,.net,Powershell,你能解释一下两者的区别吗 $attachment = [String]::Concat($workingDir,"\", $fileName) 及 在Powershell中组合路径时?Path.Combine方法在语义上可以识别文件夹路径。例如,如果$workingDir是“c:\”,则字符串.Concat示例将生成一个具有两个相邻反斜杠的路径。考虑一种情况,即$workingDir具有一个尾随反斜杠而$fileName具有一个前导反斜杠,例如: $workingDir = "C:\foo\"
$attachment = [String]::Concat($workingDir,"\", $fileName)
及
在Powershell中组合路径时?Path.Combine方法在语义上可以识别文件夹路径。例如,如果
$workingDir
是“c:\”
,则字符串.Concat
示例将生成一个具有两个相邻反斜杠的路径。考虑一种情况,即$workingDir
具有一个尾随反斜杠而$fileName
具有一个前导反斜杠,例如:
$workingDir = "C:\foo\"
$fileName = "\bar.txt"
这两个命令将产生以下结果:
PS C:\> [String]::Concat($workingDir, "\", $fileName)
C:\foo\\\bar.txt
PS C:\> [IO.Path]::Combine($workingDir, $fileName)
\bar.txt
示例(使用C#,但在任何调用程序中的输出都是相同的):
PS C:\> [String]::Concat($workingDir, "\", $fileName)
C:\foo\\\bar.txt
PS C:\> [IO.Path]::Combine($workingDir, $fileName)
\bar.txt
PS C:\> Join-Path $workingDir $fileName
C:\foo\bar.txt