如何获取特定目录的相对文件名?

时间:2011-04-13 22:00:01

标签: c# relative-path

我有一个正在进行文件复制的方法。 “root”由用户在命令行中指定,我使用Path.GetFullPath(input)进行清理。

我需要获取相对于该根目录的文件路径,因此以下情况将返回:

Root        FilePath                    Return
y:\         y:\temp\filename1.txt       temp\filename1.txt
y:\dir1     y:\dir1\dir2\filename2.txt  dir2\filename2.txt

4 个答案:

答案 0 :(得分:4)

你可以写

var relative = new Uri(rootPath).MakeRelativeUri(new Uri(filePath));

http://msdn.microsoft.com/en-us/library/system.uri.makerelativeuri.aspx

答案 1 :(得分:1)

System.IO.Path.GetFullPath( filePath ).Substring( rootPath.Length )

答案 2 :(得分:1)

string relativePath = Path.GetFullPath(input).Replace(rootPath, "");

答案 3 :(得分:1)

string s1 = "y:\\";
string s2 = "y:\\temp\filename1.txt";
Console.WriteLine(s2.Substring(s1.Length)); \\ Outputs temp\filename1.txt

希望这有帮助

也可以调用.Trim()以确保删除尾随\字符等。