Обрезать путь приложения C # - PullRequest
1 голос
/ 06 ноября 2010

У меня есть этот путь к приложению:

C: \ Documents and Settings \ david \ Мои документы \ app \

И путь к файлу:

C: \ Documents and Settings \ david \ Мои документы \ app \ stuff \ file.txt

Как я могу обрезать путь к приложению по пути к файлу, чтобы он стал stuff \ file.txt? Причина, по которой я использую инструменты командной строки, не поддерживает пробелы в пути к файлу.

Ответы [ 3 ]

2 голосов
/ 06 ноября 2010

Попробуйте это:

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 голосов
/ 06 ноября 2010

Не знаю, почему обычная замена строки не подходит:

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""";
0 голосов
/ 06 ноября 2010

я не знаю, какой командный инструмент вы используете, но обычно они работают, если мы заключили строку / путь в кавычки, подобные этой

"C: \ Documents and Settings \ david \ Мои документы \ app \ stuff \ file.txt"

...