【问题标题】:C# trim application pathC#修剪应用程序路径
【发布时间】:2010-11-06 10:33:21
【问题描述】:

我有这个应用路径:

C:\Documents and Settings\david\My Documents\app\

还有一个文件路径:

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

如何从文件路径中修剪应用程序路径,使其变为 stuff\file.txt?作为我正在使用的命令行工具之一的原因不支持文件路径中的空格。

【问题讨论】:

  • 只是一个猜测,但是当您将路径提供给您的命令行工具时,您是否尝试过将路径包含在括号 " 中?
  • 我觉得自己像个白痴,谢谢你让我知道。用它们封闭路径时效果很好。

标签: c# file path startup trim


【解决方案1】:

试试这个:

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();

相关文档:

【讨论】:

  • 即使我意识到我忘了用括号括起来路径,这肯定会派上用场。谢谢。
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

    不知道为什么普通的字符串替换不起作用:

    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""";
    

    【讨论】:

      猜你喜欢
      • 2020-11-06
      • 2016-08-30
      • 1970-01-01
      • 2012-07-21
      • 2011-09-08
      • 1970-01-01
      • 2015-05-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多