我有一个正在进行文件复制的方法。 “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
答案 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()以确保删除尾随\字符等。