Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

...\Local Settings\...

352  
viger2 местный житель01.03.10 19:26
viger2
NEW 01.03.10 19:26 
Всем привет!
Дано: Винда XP, Visual Studio, .net, программка на С-шарпе
В ходе выполнения программы, требуется доступ к файлам находящимся в директориях
...{username}\Local Settings\Temp\...
и
...{username}\Local Settings\Application Data\... пользователя под под чьим профилем запущена эта программка.
для первого случая использую Path.GetTempPath() http://msdn.microsoft.com/de-de/library/system.io.path.gettemppath.aspx
во втором Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) http://msdn.microsoft.com/de-de/library/system.environment.specialfolder.aspx
Вопросы:
1. Будет ли это работать под седьмой виндой? как я понимаю это ведь функции от дот.нет
2. Насколько это нормально использывать эти директории для сохранения "ini" файлов с установками программы?
3. Или лучще всетаки возиться с записью/чтением данных в registry? (что еще не до конца имплеметированно и протестированно в отличии от чтения/записи файлов)
пс: изначально все установки записывались в файлы в том директории где установлена сама программа ...\Program Files\... что всетаки привело к проблеммам под вистой и семеркой когда юзер не админ... если кому интересно предистория тут: foren.germany.ru/arch/programmer/f/14098736.html?Cat=&page=&view=&sb=&vc=...
все что вы сделаете в интернете может быть использовано против вас!
#1 
megabyte постоялец01.03.10 20:00
megabyte
NEW 01.03.10 20:00 
в ответ viger2 01.03.10 19:26
В ответ на:
1. Будет ли это работать под седьмой виндой? как я понимаю это ведь функции от дот.нет
Работать будет.
В ответ на:
2. Насколько это нормально использывать эти директории для сохранения "ini" файлов с установками программы?
Нормально, но Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) вернет путь к "..{username}\Application Data\...", а не к "..{username}\Local Settings\Application Data\..." (Для этого служит Environment.SpecialFolder.LocalApplicationData). Разница в между этими папками в том, что в первом случае папка будет сохранена на сервере, если профиль пользователя объявлен как "Roaming", ну и во втором случае данные вне зависимости от типа профиля буду хранится только локально.
В ответ на:
3. Или лучше всетаки возиться с записью/чтением данных в registry?
ИМХО, registry лучше и вроде возиться с чтением/записью в .net нет нужды (могу ошибаться).
#2 
Murr_0005 постоялец01.03.10 22:27
NEW 01.03.10 22:27 
в ответ megabyte 01.03.10 20:00
ИМХО, registry лучше
-----
Спорно.
ИНИ в папке программы - понятно - относится к программе.
В другой папке - к другой копии/версии программы.
В Регистре же это надо еще организовывать - место то одно...
#3 
viger2 местный житель01.03.10 22:28
viger2
01.03.10 22:28 
в ответ megabyte 01.03.10 20:00
В ответ на:
но Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) вернет путь к "..{username}\Application Data\...", а не к "..{username}\Local Settings\Application Data\..." (Для этого служит Environment.SpecialFolder.LocalApplicationData). Разница в между этими папками в том, что в первом случае папка будет сохранена на сервере, если профиль пользователя объявлен как "Roaming"

сегодня немного тестирововал и все вроде нормально работало "локально" т.е. на физическом диске... завтра попробую как это все действует в сети...
Спасибо за совет!
все что вы сделаете в интернете может быть использовано против вас!
#4 
  digital.pilot патриот01.03.10 22:32
digital.pilot
NEW 01.03.10 22:32 
в ответ Murr_0005 01.03.10 22:27
в данном случае ini не в папке программы, а в профайле, так что ситуация сравнимая с реестром. А в папку программы вообще Билли писать давно уже запретил.
#5 
viger2 местный житель01.03.10 22:38
viger2
NEW 01.03.10 22:38 
в ответ Murr_0005 01.03.10 22:27
В ответ на:
В другой папке - к другой копии/версии программы.
В Регистре же это надо еще организовывать - место то одно...

да действительно, я в прошлый раз как раз на эти грабли тоже наступал, т.к. неисключается что на машине могут быть установлены и старая и новая версия программы. Пришлось тупо переименовывать разветвлять начальные ветки в registry.
все что вы сделаете в интернете может быть использовано против вас!
#6 
Murr_0005 постоялец01.03.10 22:44
NEW 01.03.10 22:44 
в ответ digital.pilot 01.03.10 22:32
В этом случае - да, более-мение сравнимая. В том смысле, что обозначенная проблема имеет место быть.
Писать в папку билли запретить не умеет.
#7 
  digital.pilot патриот01.03.10 22:53
digital.pilot
NEW 01.03.10 22:53 
в ответ Murr_0005 01.03.10 22:44
умеет. Не в прямом же смысле, конечно. Достаточно стандартному пользователю с правами по умолчанию запретить. Это уже равнозначно полному запрету, т.к. при разработке это уже надо учитывать.
#8 
Murr_0005 постоялец02.03.10 00:20
NEW 02.03.10 00:20 
в ответ digital.pilot 01.03.10 22:53
Это уже равнозначно полному запрету
-----
Это означает, что необходимо один раз написать правильный врапер.
С точки зрения разработчика - будет не using System.IO, a using Wraper.IO.
Ни о чем больше думать не надо.
#9 
  digital.pilot патриот02.03.10 00:22
digital.pilot
NEW 02.03.10 00:22 
в ответ Murr_0005 02.03.10 00:20, Последний раз изменено 02.03.10 00:24 (digital.pilot)
ну конечно. А начинка сама напишется. И настройки из легаси-файла на пользовательской машине в новый тоже сами.
#10 
Murr_0005 постоялец02.03.10 00:26
NEW 02.03.10 00:26 
в ответ digital.pilot 02.03.10 00:22
Кто тебе мешает запустить что нужно под админом или получить привелегии?
#11 
  digital.pilot патриот02.03.10 00:28
digital.pilot
NEW 02.03.10 00:28 
в ответ Murr_0005 02.03.10 00:26
пользователи мешают. В кол-ве нескольких сотен штук.
#12 
Murr_0005 постоялец02.03.10 00:31
NEW 02.03.10 00:31 
в ответ digital.pilot 02.03.10 00:28
Да ну?
А если и мешают - сотри их нафиг...
#13 
  femidav знакомое лицо02.03.10 01:35
NEW 02.03.10 01:35 
в ответ digital.pilot 01.03.10 22:32
В ответ на:
данном случае ini не в папке программы, а в профайле, так что ситуация сравнимая с реестром

Не скажи. Настройки из профайла куда проще переносить. Например Мозилловские поделки - путь к профайлу прописал после реинсталяции, и готово!
#14 
  digital.pilot патриот02.03.10 01:41
digital.pilot
NEW 02.03.10 01:41 
в ответ femidav 02.03.10 01:35
ну, я имел в виду схожесть в том факте, что надо разбивать на каталоги/ветки под каждую версию программы (если такое требуется).
#15 
Программист постоялец02.03.10 09:38
NEW 02.03.10 09:38 
в ответ Murr_0005 02.03.10 00:26, Последний раз изменено 02.03.10 09:39 (Программист)
В ответ на:
Кто тебе мешает запустить что нужно под админом или получить привелегии?

Администратор :)
А на домашних машинах - здравый смысл :) (например я содал себе и жене профили с ограниченными правами :) )
#16 
Murr_0005 постоялец02.03.10 12:09
NEW 02.03.10 12:09 
в ответ Программист 02.03.10 09:38
Он тебе не мешает - есть РЕБООТ, есть "AT", есть и другие возможности.
#17 
Программист постоялец04.03.10 15:38
NEW 04.03.10 15:38 
в ответ Murr_0005 02.03.10 12:09
Кто "он"? Администратор или здравый смысл?
Про "РЕБООТ" и "АТ" не понял... да и другие возможности как-то не очень понятны. Поясни плиз, каким образом имея ограниченные права можно стать админом? :)
#18 
Murr_0005 постоялец04.03.10 19:48
NEW 04.03.10 19:48 
в ответ Программист 04.03.10 15:38
А каким образом ты вообще делаешь из-под юзера то, для чего тебе нужны админовские привелегии?
Если не делаешь - тебе это не нужно и не засоряй голову.
#19 
Программист постоялец08.03.10 09:29
NEW 08.03.10 09:29 
в ответ Murr_0005 04.03.10 19:48
Murr_0005, ты хочешь счазать, что юзер может делать что-то с админскими привелегиями в обход политики безопасности (и в частности UAC'а)?
Если да, то хотелось бы знать как :) Вдруг когда-нибудь понадобится? :)
#20