Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
369 views
in Technique[技术] by (71.8m points)

.net - What is the difference between combining paths in those 2 ways?

Can you explain what is the difference between

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

and

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

when it comes to combining paths in Powershell?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Consider a situation where $workingDir has a trailing backslash and $fileName has a leading one, e.g.:

$workingDir = "C:foo"
$fileName   = "ar.txt"

The 2 commands will produce the following results:

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

In PowerShell it's better to use Join-Path:

PS C:> Join-Path $workingDir $fileName
C:fooar.txt

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...