2016-04-10 5 views
-2

Я пытаюсь получить путь для моего xml-файла. У меня есть одна строка с .exe файла:Как правильно удалить буквы из моей строки?

string exe_location = System.Reflection.Assembly.GetExecutingAssembly().Location; 

и другую строку, чтобы содержать результат:

string xml_location = exe_location.Remove(exe_location.Length, -11); 

Когда я бегу код, отладчик вдруг говорит: "граф не может быть меньше чем ноль. \ r \ nПараметр: count "

Я не уверен, как мне удалось провалиться с этой простой миссией. Есть идеи?

ответ

0

Как сказал из weirdev функция «удалить» проблема (длина больше, чем 11 и длина -11 добраться до вас отрицательное число). Но если вы хотите, чтобы путь файла EXE из ехе места сборки вы можете использовать этот код:

path = IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); 
+0

я могу установить '.exe', используя только' System.Reflection.Assembly.GetExecutingAssembly(). Location; 'моя проблема в том, чтобы получить путь к xml – jjm

+0

@jjm Да, функция «GetDirectoryName» дает вам только каталог без имени exe. От «C: \ your_folder \ yourexe.exe» до «C: \ you_folder». Я думал, что это была цель, для которой вы использовали «remove». – Baro

+0

О, я этого не заметил, вы его решили. Большое спасибо! – jjm

0

Второй параметр Remove() - это количество символов для удаления. Первый параметр - это индекс для начала удаления. Если вы хотите удалить последние одиннадцать символов, которые вам нужны.

Remove(exe_location.Length - 11, 11) 
+0

я изменил 'строка xml_location = exe_location.Remove (exe_location.Length, -11),' 'в струнной xml_location = exe_location.Remove (exe_location.Length - 11, 11); 'и ничего не изменилось. (я не получил ошибку, но номер не изменил niether. – jjm

Смежные вопросы