Где безопасное место должно сохранить файлы журнала, который совместим с XP, Vista и Windows 7?

У меня есть приложение winforms, которое должно выписать журналы. Приложение также должно работать без предупреждений контроля учётных записей и использования неадминистраторской учетной записи.

Где я могу записать свои журналы, не сталкиваясь с настройками безопасности по умолчанию? Кроме того, это должно работать над Windows XP, Vista, и 7.

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

5
задан Cœur 27 December 2017 в 02:18
поделиться

2 ответа

Вы не можете (не должны) жестко запрограммировать путь. Вместо этого спросите Windows, где его сохранить, вызвав SHGetFolderPath, который можно использовать для возврата местоположения каталога AppData текущего пользователя (или всех пользователей).

Статья MSDN с решением на языке C: http://support.microsoft.com / kb / 310294

Полезный пример Delphi: http://delphi.about.com/od/kbwinshell/a/SHGetFolderPath.htm

Обратите внимание, что делать одноразовый запрос пути, преобразовать его в абсолютную строку и сохранить в своих настройках. Потому что Windows может это изменить. Они могут присоединяться к домену, обновлять окна и т. Д., И окна действительно могут перемещать ваши файлы. Если вы затем укажете на старое местоположение, не спрашивая снова «где эта папка», вы сломаетесь. Был там, сделал это ...

6
ответ дан 14 December 2019 в 08:45
поделиться

Используя SHGetFolderPath , вы можете использовать индивидуальные или глобальные каталоги файлов журналов. Если вы используете CSIDL_COMMON_APPDATA , то: «Эта информация не будет перемещаться и доступна любому, кто использует компьютер». что звучит так, как будто это то, что вы хотите.

1
ответ дан 14 December 2019 в 08:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: