какая папка Windows подходит для обмена данными между локальными пользователями? - PullRequest
3 голосов
/ 22 сентября 2011

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

Я бы хотел избежать папки %APPDATA% (CSIDL_APPDATA), потому что службе нужно было бы понять, где находится эта папка (служба работает под системной учетной записью). Я проверил %ALLUSERSPROFILE% (это CSIDL_COMMON_APPDATA?), Он указывает на c:\ProgramData на моей Win7 x64. Но эта папка не позволяет модификацию для обычных локальных пользователей (я проверил в папке properties, security вкладка). То же самое о %CommonProgramFiles%.

Мне нужно поддерживать WinXP и выше.

Ответы [ 2 ]

2 голосов
/ 22 сентября 2011

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

1 голос
/ 22 сентября 2011

Я думаю, вам нужно CSIDL_COMMON_DOCUMENTS (или FOLDERID_PublicDocuments), то есть папка Shared Documents. Под XP это было бы что-то вроде c:\Documents and Settings\All Users\Documents.

...