Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

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

c# - Path.Combine absolute with relative path strings

I'm trying to join a Windows path with a relative path using Path.Combine.

However, Path.Combine(@"C:lah",@"..ling") returns C:lah..ling instead of C:ling.

Does anyone know how to accomplish this without writing my own relative path resolver (which shouldn't be too hard)?

See Question&Answers more detail:os

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

1 Reply

0 votes
by (71.8m points)

What Works:

string relativePath = "..\bling.txt";
string baseDirectory = "C:\blah";
string absolutePath = Path.GetFullPath(baseDirectory + relativePath);

(result: absolutePath="C:ling.txt")

What doesn't work

string relativePath = "..\bling.txt";
Uri baseAbsoluteUri = new Uri("C:\blah");
string absolutePath = new Uri(baseAbsoluteUri, relativePath).AbsolutePath;

(result: absolutePath="C:/blah/bling.txt")


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...