XDocument.Save в конкретный каталог? - PullRequest
2 голосов
/ 20 апреля 2010

Я впервые использую эти классы XML и не могу найти эту информацию.

Я делаю:

xmlDoc = new XDocument(new XDeclaration("1.0", "utf-8", "yes"));
xmlDoc.Add(new XElement("Images"));
xmlDoc .Save("C:\\Backup\\images.xml");

Но не работает. Это работает, только если я использую только имя файла, например, «images.xml», но, конечно, файл сохраняется по пути выполнения.

Ответы [ 3 ]

6 голосов
/ 20 апреля 2010

По умолчанию вы, скорее всего, не сможете сохранить в «C: \ Backup», если не запустите вашу программу с повышенными правами. По умолчанию вы можете сохранять только пользовательские папки.

2 голосов
/ 20 апреля 2010

Работал для меня, должно быть проблема с разрешениями. Попробуйте другой каталог или убедитесь, что c: \ Backup существует

0 голосов
/ 27 августа 2018

Я публикую это, потому что я только что столкнулся с подобной ситуацией.

Я ожидал, что XDocument.Save() создаст путь, если он не существует.

(«Ожидать далеко!», Я слышу, как говорят фанаты «Черных книг».)

Кажется, что нет. Что кажется мне упущением, учитывая то, что делают другие Save методы. Или, по крайней мере, у них есть возможность создать путь, если он не существует.

В любом случае, я согласен, что вопрос немного двусмысленный, но решение - если это связано с несуществующим путем - сначала создать его:

if (!Directory.Exists(Path.GetDirectoryName(myFilePath))) Directory.CreateDirectory(Path.GetDirectoryName(_myFilePath));

ПРИМЕЧАНИЕ. В этом примере MyFilePath - это полный путь, включая имя файла и расширение. Если у вас есть только путь, это будет:

if (!Directory.Exists(myPath))) Directory.CreateDirectory(myPath);

После того, как я добавил эту строку, все было хорошо.

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