Запись данных в App_Data - PullRequest
       7

Запись данных в App_Data

8 голосов
/ 04 апреля 2010

Я хочу записать файл .xml, используя следующий код в App_Data / posts Почему это вызывает ошибку?

код

 Stream writer  = new FileStream("..'\'App_Data'\'posts'\'" + new Guid(post_ID.ToString()).ToString() + ".xml", FileMode.Create);

Ответы [ 2 ]

19 голосов
/ 04 апреля 2010

Пожалуйста, опубликуйте полученное вами исключение;не просто «это не работает» - это может быть всевозможные проблемы.Вот несколько вещей, которые нужно проверить:

Проверьте, есть ли у процесса ASP.NET доступ на запись в этот каталог.

Кроме того, похоже, что вы выходите из обратных путей в неверном пути.И при работе с ASP.NET ваши пути должны быть относительно корневого каталога приложения.Попробуйте это:

string path = HttpContext.Current.Server.MapPath("~/App_Data/posts/" + new Guid(post_ID.ToString()).ToString() + ".xml"
Stream writer  = new FileStream(path, FileMode.Create);

Наконец, убедитесь, что каталог posts существует - иначе создание файла завершится неудачей.

7 голосов
/ 04 апреля 2010

Удалите посторонние одинарные кавычки и избегайте обратной косой черты.

Или, что еще лучше, используйте Server.MapPath (доступно в базовых классах Page и UserControl и HttpContext среди прочего).

Server.MapPath("~/App_Data/posts/" + new Guid(post_ID.ToString()).ToString() + ".xml")

Из любопытства, какой тип post_ID? Почему вы конвертируете его в строку, затем в guid, а затем обратно в строку?

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