Member 11776570 Ответов: 1

Ошибка несанкционированного доступа к файлу в C#


я делаю изменения в файле .xml в его атрибутивном значении, но это дает ошибку несанкционированного доступа.

Что я уже пробовал:

<pre> try
            {
                string path =Application.StartupPath + "\\OTS.exe.config";
                var doc = new XmlDocument();
                doc.Load(path);
                XmlNodeList endpoints = doc.GetElementsByTagName("connectionStrings");
                foreach (XmlNode item in endpoints)
                {
                    if (item.HasChildNodes)
                    {
                        foreach (var c in item.ChildNodes)
                        {
                            if (((XmlNode)c).NodeType == XmlNodeType.Element)
                            {
                                var adressAttribute = ((XmlNode)c).Attributes["name"];
                                if (adressAttribute.Value.Contains("OTSConnection"))
                                {
                                    ((XmlNode)c).Attributes["connectionString"].Value = connection_string;
                                    //((XmlNode)c).Attributes["providerName"].Value = SetupConstants.DbEmbededConnectionProvider;
                                }
                            }
                        }
                    }

                }
                doc.Save(path);    // it is not saving the file. jump to catch block.
                string exePath = Path.Combine(path,"OTS.exe");

                return true;
            }
            catch
            {

                return false;
            }

1 Ответов

Рейтинг:
11

Jochen Arndt

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

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

Для настройки и настройки приложения используйте один из следующих способов: AppData папки в зависимости от ваших требований (локальный пользователь, перемещаемый пользователь или все пользователи); см. Класса (Система.Окна.Формы)[^] чтобы получить эти папки.


Member 11776570

Да, я понял эту ошибку. В C:\ нет доступа для внесения изменений в файл установленного приложения, поэтому он выдает ошибку.