2010-11-06 123 views
1

我有这样的应用程序路径:C#装饰应用程序路径

C:\ Documents和Settings \大卫\我的文档\程序\

和文件路径:

C:\ Documents and Settings \ david \ My Documents \ app \ stuff \ file.txt

怎么可以我从文件路径修剪应用程序路径,以便它变成东西\ file.txt?作为我正在使用的命令行工具之一的原因不支持文件路径中的空格。

+2

只是一个猜测,但你有没有尝试包装路径paranthesis'''当它提供给你的公司命令行工具? – Peter 2010-11-06 10:37:13

+0

我觉得自己像个白痴,谢谢你让我知道。当用它们封闭路径时它工作正常。 – david 2010-11-06 10:47:29

回答

2

试试这个:

Uri path = new Uri(@"C:\Documents and Settings\david\My Documents\app\stuff\file.txt"); 
Uri workingDirectory = new Uri(Directory.GetCurrentDirectory()); 
string relativePath = workingDirectory.MakeRelativeUri(path).ToString(); 

相关文档:

+0

即使我意识到我忘记了将这条路径放在旁边,这确实会派上用场。谢谢。 – david 2010-11-06 10:47:53

0

我不知道哪个命令您使用的工具,但通常他们的工作,如果我们用引号括起来的字符串/路径这样

“C:\ Documents和Settings \大卫\我的文档\应用\东西\ file.txt的”

0

不知道为什么正常的字符串替换不会做:

string filePath = @"C:\Documents and Settings\david\My Documents\app\stuff\file.txt"; 
string appPath = @"C:\Documents and Settings\david\My Documents\app\"; 
string trimmed = filePath.Replace(appPath, ""); 

但是,如果你只是用引号括起来(")的完整路径,大多数命令行工具将是罚款与空间:

string escapedPath = @"""C:\Documents and Settings\david\My Documents\app\stuff\file.txt""";