none
Надежное место для хранения файла настроек RRS feed

  • Вопрос

  • До появления Windows Vista/7 я предпочитал сохранять файл настроек рядом с exe'шником, но теперь такой подхот потребует повышенных прав, если программу установлена в системную папку.

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

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

    5 апреля 2011 г. 5:50
    Отвечающий

Ответы

  • В ApplicationData можно хранить настройки (создав в ней отдельную папку приложения) без боязни, что очистка диска их удалит.

    Мы используем такой путь для хранения настроек:

    Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "ProjectName");
    

    • Помечено в качестве ответа LXGDARKEditor 5 апреля 2011 г. 9:43
    5 апреля 2011 г. 7:59
    Отвечающий

Все ответы

  • В ApplicationData можно хранить настройки (создав в ней отдельную папку приложения) без боязни, что очистка диска их удалит.

    Мы используем такой путь для хранения настроек:

    Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "ProjectName");
    

    • Помечено в качестве ответа LXGDARKEditor 5 апреля 2011 г. 9:43
    5 апреля 2011 г. 7:59
    Отвечающий
  • У меня такая песня. Есть приложение WPF Win7-64. Устанавливается по ClickOnce. Но одна из функций сохраняет данные здесь. 

                            string md = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
                            xd.Save(md + "\\Rossecorp\\IncdProject\\Calc\\Filedata.xml"); // 


    Не будет ли ругаться UAC на это и не будет ли вываливаться программа из за прав доступа? Никаких дополнительных проверок на UAC нет.


    3 июля 2012 г. 16:15
  • Скорее всего проблем не будет, так как эта папка открыта для всех уровней доступа. Другое дело в том, что сохранять в папку "Мои документы" желательно именно документы. То есть если приложение работает с какими то документами и нужно место их хранения и, их можно будет открыть прямо из папки "Мои документы". Если же это настройки приложения, то лучше использовать путь, предложенный Антоном.

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


    Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!

    • Предложено в качестве ответа developers_s 3 июля 2012 г. 19:05
    • Отменено предложение в качестве ответа LXGDARKEditor 3 июля 2012 г. 19:06
    3 июля 2012 г. 17:53
    Отвечающий
  • Точно, согласен :)

    3 июля 2012 г. 19:05
  • Точно, согласен :)

    А вообще если ответ в данном топике не раскрывает все что вам бы хотелось знать, то лучше создавать новый пост. А то выходит, что я сам ответил на свой же вопрос, но на деле отвечал вам. В общем не понятно получается :)

    Если хотите поблагодарить за данный мной ответ в этом посте, то можете добавить плюсик к моему ответу. Для этого слева каждого сообщения есть циферка, стрелочка вверх и надпись "полезное". Жмете туда и сообщение считается единожды признанно полезным.


    Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!

    3 июля 2012 г. 19:09
    Отвечающий