2013-04-10 2 views
1

У меня возникают проблемы с линией, в которой найден базовый каталог (расположение самого .exe), и строка из текстового файла внутри считывается.Базовый каталог - Незаконные символы в пути

Это вырвет ошибку «недопустимые символы в пути» для этой строки в коде:

StreamReader sr = new StreamReader(File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + "\Parameters.txt")); 

Это может быть в результате меня форматирования аргументы StreamReader() неправильно, (вероятно, AppDomain.CurrentDomain.BaseDirectory), но я не может быть уверенным, что нет много другого материала об appdomain.

Любая помощь будет оценена по достоинству.

+3

Ну, вы не можете сделать '' \ Parameters.txt ''. Do '' \\ Parameters.txt "или' "/Parameters.txt" ' – leppie

+0

^Я тоже пробовал это. Он по-прежнему бросает ту же ошибку. –

+0

Я заметил проблему сейчас, см. Мой ответ :) – leppie

ответ

2

Перегрузка для StreamReader конструктора, который принимает string аргумента не является имя файла, а не содержание.

Вместо этого используйте StringReader или удалите File.ReadAllText.

+1

Спасибо. Отличный ответ. Я бы проголосовал за этот ответ, но у меня пока нет достаточного количества репутации. –

1

попробовать ниже код

var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Parameters.txt"); 

Есть и другие перегрузки этой функции, например,

Combine(String[])   //Combines an array of strings into a path. 
Combine(String, String)  //Combines two strings into a path. 
Combine(String, String, String)    //Combines three strings into a path. 
Combine(String, String, String, String)  //Combines four strings into a path. 

См http://msdn.microsoft.com/en-us/library/system.io.path.combine.aspx

0

Удалить '\' с вашего пути ...

StreamReader sr = new StreamReader(File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + "Parameters.txt")); 

AppDomain.CurrentDomain.BaseDirectory + "Parameters.txt" -> Это возвращает правильный путь, как показано ниже

Путь:\Visual Studio 2010\Projects\Sample\Sample\bin\Release\Parameters.txt

Так нет необходимости «\» в этом пути

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