Я хочу записать .xml файл с помощью следующего кода в App_Data/posts. Почему это вызывает ошибку?
Stream writer = new FileStream("..'\'App_Data'\'posts'\'" + new Guid(post_ID.ToString()).ToString() + ".xml", FileMode.Create);
Опубликуйте полученное исключение; не просто «не работает» - это могут быть всякие проблемы. Вот несколько вещей, которые нужно проверить:
Проверьте, есть ли у процесса 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);
Наконец, убедитесь, что каталог сообщений существует - иначе создание файла не удастся.
Удалите лишние одинарные кавычки и правильно экранируйте обратную косую черту.
Или, что еще лучше, используйте Server.MapPath
(доступный, помимо прочего, в базовых классах Page и UserControl, а также в HttpContext).
Server.MapPath("~/App_Data/posts/" + new Guid(post_ID.ToString()).ToString() + ".xml")
Из любопытства, что это за тип post_ID? Почему вы конвертируете его в строку, затем в guid, а затем обратно в строку?