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

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

Код

 Stream writer  = new FileStream("..'\'App_Data'\'posts'\'" + new Guid(post_ID.ToString()).ToString() + ".xml", FileMode.Create);
8
задан Peter Mortensen 24 April 2015 в 08:57
поделиться

2 ответа

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

Проверьте, есть ли у процесса 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);

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

20
ответ дан 5 December 2019 в 06:09
поделиться

Удалите лишние одинарные кавычки и правильно экранируйте обратную косую черту.

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

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

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

7
ответ дан 5 December 2019 в 06:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: