Path.Combine с пробелами в передаваемом параметре? - PullRequest
3 голосов
/ 30 октября 2009
string exeFile = (new System.Uri(Assembly.GetEntryAssembly().CodeBase)).AbsolutePath;
string exeDir = Path.GetDirectoryName(exeFile);
string fileName = Path.Combine(exeDir, @"..\..\xml\SalesOrderXMLData.csv.xml");

Здравствуйте,
Приведенный выше код работает, если проект находится, например, в

C: \ Code \

но не если его в

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

Если бы у меня была строка, я бы использовал escape-символы, где это необходимо, но в этом случае я не знаю, как обойти это.

Обновление: result fileName = "D: \ Naim \ My% 20Documents \ Visual% 20Studio% 202008 \ Projects \ XML_Gen \ XML_Gen \ bin \ Debug \ .. \ .. \ xml \ SalesOrderXMLData. csv.xml» Любая помощь приветствуется.
Спасибо

Ответы [ 2 ]

0 голосов
/ 30 октября 2009

код ниже работает, хотя я не знаю, почему выше не работал. Изменено AbsolutePath на LocalPath

string exeFile = (new System.Uri(Assembly.GetEntryAssembly().CodeBase)).LocalPath;
string exeDir = Path.GetDirectoryName(exeFile);
string fileName = Path.Combine(exeDir, @"..\..\xml\SalesOrderXMLData.csv.xml");
0 голосов
/ 30 октября 2009

Это, вероятно, URI. Используйте Assembly.GetEntryAssembly (). Location и передайте его непосредственно в Path.GetDirectoryName ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...