【问题标题】:what's the right Windows folder to exchange data between local users?在本地用户之间交换数据的正确 Windows 文件夹是什么?
【发布时间】:2011-11-22 17:25:33
【问题描述】:

我想在本地普通用户帐户下运行的应用程序中编写一个文件并在服务中读取它。什么是正确的文件夹?

我想避免使用%APPDATA% (CSIDL_APPDATA) 文件夹,因为服务需要知道这个文件夹在哪里(服务在系统帐户下运行)。我检查了%ALLUSERSPROFILE%(是CSIDL_COMMON_APPDATA?),它在我的Win7 x64上指向c:\ProgramData。但是这个文件夹不允许普通本地用户进行修改(我签入了文件夹propertiessecurity 选项卡)。 %CommonProgramFiles%也一样。

我需要支持 WinXP 及更高版本。

【问题讨论】:

  • 我知道这是一个旧线程,但我很好奇您是如何解决这个问题的?实际上CSIDL_COMMON_APPDATA 指向与服务不同的文件夹。 CSIDL_COMMON_DOCUMENTS 是否确实在您调用它的任何地方(服务、用户模式应用程序、访客帐户)都指向同一个位置?

标签: windows security windows-7 permissions windows-xp


【解决方案1】:

当我遇到类似情况时,我没有找到这样的文件夹。简单的解决方案是在安装期间(或从服务)在 CSIDL_COMMON_APPDATA 文件夹中创建一个文件夹,并具有允许普通用户写入该文件夹的特殊权限。

【讨论】:

    【解决方案2】:

    我认为您需要CSIDL_COMMON_DOCUMENTS(或FOLDERID_PublicDocuments),即Shared Documents 文件夹。在 XP 下,它将类似于 c:\Documents and Settings\All Users\Documents

    【讨论】:

    • 我遇到了同样的情况,正确的答案实际上是使用CSIDL_COMMON_APPDATA,尤其是在服务需要共享文件夹的情况下。如果是服务(或会话 0 进程),您将无法获得 CSIDL_COMMON_DOCUMENTS
    猜你喜欢
    • 2018-06-13
    • 1970-01-01
    • 2021-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-15
    相关资源
    最近更新 更多