zoukankan      html  css  js  c++  java
  • FAQs: 我们可以在那里来为我的没有提升管理权限的应用程序存储用户数据?

    如果你正在写一个不需要管理员权限的应用程序,如写一个业务线应用(Line of Business,LOB),用户应用程序如游戏,你总是要把应用程序的数据写到一个标准用可以访问的目录。下面列出一些所推荐的需求:

    l  将每个用户的数据写入:

    Ø  选择1:FOLDERID_RoamingAppData / System.Environment.SpecialFolder.ApplicationData

    用户不会在资源管理器中访问这个目录,关于用户的漫游数据都应该存储在这里。默认的位置在%appdata%,是一个在Windows Vista/7系统下的隐藏目录。

    Ø  选择2:FOLDERID_LocalAppData / System.Environment.SpecialFolder.LocalApplicationData

    用户不会在资源管理器中访问这个目录,这里的数据更改将被存储在本地。它的默认位置是%localappdata%,是一个在Windows Vista/7系统下的隐藏目录。

    Ø  选择3:FOLDERID_Documents / System.Environment.SpecialFolder.MyDocuments

    用户可以在资源管理器里浏览访问这个目录,并且可以双击里面的文件来打开文件。它的默认位置在%userprofile%documents,它在Windows Vista/7的资源管理器中有一个明显的链接可以找到它。

    l  将每一台计算机的数据写入:

    Ø  选择1:FOLDERID_ProgramData / System.Environment.SpecialFolder.CommonApplicationData

    用户不会在资源管理器中访问这个目录,更改这里的设置值能够影响到机器上的每一个用户。它的默认位置在%systemdrive%ProgramData,在Windows Vista/7中是一个隐藏目录。你需要在你的应用程序安装的时候,在这个目录下里面创建你的目录,并且在目录上设置相应的访问控制权限(Access Control Lists,ACLs)。

    Ø  选择2:FOLDERID_Public / FOLDERID_PublicDocuments / System.Environment.GetEnvironmentVariable("public")

    用户可以在资源管理器里浏览访问这个目录,并且可以双击里面的文件来打开文件。它的默认位置在%public%,它在Windows Vista/7的资源管理器中有一个明显的链接可以找到它。你需要在你的应用程序安装的时候,在这个目录下里面创建你的目录,并且在目录上设置相应的访问控制权限(Access Control Lists,ACLs)。

    请切记:

    1.       千万不要把每个用户的信息或者用户能写入的信息存储在Program Files或Program目录中。

    2.       千万不要用硬编码的方式来写文件系统路径。应该使用那些“已知目录”API和ShGetFolderPath来获得你要写入数据的目录。

    相关文档:Where Should I Write Program Data Instead of Program Files? Chris Jackson

    来源:https://social.technet.microsoft.com/Forums/zh-CN/4210e7c6-bba1-4eec-ae4a-046d1ab704d2/faqs-?forum=windowscompatzh

  • 相关阅读:
    Android tcpdump 抓包
    Android CursorAdapter 查询联系人过滤
    Android 项目打包成apk文件
    解决Centos 6.3 中 gedit中文乱码问题
    在Linux(centos)系统上用手机调试android程序(eclipse)
    系统定时关机命令–shutdown
    使用gdb Server调试嵌入式程序
    Vim 错误排查方法
    通过netstat命令查看进程与端口的对应关系
    dexpler的使用方法
  • 原文地址:https://www.cnblogs.com/ashui/p/5658585.html
Copyright © 2011-2022 走看看