Запись в файл только для чтения с использованием XmlWriter в .NET - PullRequest
0 голосов
/ 12 апреля 2011

Я хотел бы записать в файл только для чтения, используя XmlWriter.Как правильно это сделать?

В настоящее время у меня есть:

XmlWriterSettings lSettings = new XmlWriterSettings();
lSettings.Encoding = new UTF8Encoding(false);
lSettings.Indent = true;

XmlWriter lWriter = XmlWriter.Create(lPath, lSettings);
lXml.WriteContentTo(lWriter);
lWriter.Close();

Мне интересно, есть ли способ избежать очистки и повторной установки флага только для чтения.

Ответы [ 2 ]

2 голосов
/ 12 апреля 2011

Если файл установлен только для чтения, вам нужно заново установить флаг, без обходных путей.

Конечно, вы можете удалить файл (для которого все еще требуетсяснять флажок) и написать новый, но затем рискуете, что если ваша операция записи не произойдет (исключение где-то), вы потеряете содержимое.

1 голос
/ 12 апреля 2011

Насколько я понимаю, вы должны удалить флаг только для чтения для записи в файл, учитывая тот факт, что этот флаг контролируется непосредственно операционной системой.

Если вы хотите избежать возможности того, что кто-то другой может записать файл в то время, когда включен флаг записи, вы можете сделать временную копию файла (с разрешениями на запись), записать свой XML в этот файл и, наконец, замените оригинальный файл своим и установите флаг только для чтения.

...