我想在应用程序中编写一个在本地常规用户帐户下运行的文件并在服务中读取它。什么是正确的文件夹?
我想避免使用%APPDATA%
(CSIDL_APPDATA
)文件夹,因为服务需要知道此文件夹的位置(服务在系统帐户下运行)。我检查了%ALLUSERSPROFILE%
(是CSIDL_COMMON_APPDATA
吗?),它指向我的Win7 x64上的c:\ProgramData
。但是此文件夹不允许修改常规本地用户(我在文件夹properties
,security
选项卡中签入)。同样关于%CommonProgramFiles%
。
我需要支持WinXP及以上。
答案 0 :(得分:2)
当我处于类似情况时,我发现没有这样的文件夹。简单的解决方案是在安装期间(或从服务)在CSIDL_COMMON_APPDATA文件夹中创建一个文件夹,该文件夹具有允许普通用户写入此文件夹的特殊权限。
答案 1 :(得分:1)
我认为您需要CSIDL_COMMON_DOCUMENTS
(或FOLDERID_PublicDocuments
),即共享文档文件夹。在XP下,它会像c:\Documents and Settings\All Users\Documents
。