Не знаю, почему обычная замена строки не подходит:
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""";