locked
FAQs: 我们可以在那里来为我的没有提升管理权限的应用程序存储用户数据? RRS feed

  • 问题

  • 为了帮助大家更好地学习 Windows 应用程序兼容性 技术,微软论坛技术支持团队编辑了一些列的 "Windows 应用程序兼容性 常见问题及解答" 精华帖。

     

    本帖的主题是:我们可以在那里来为我的没有提升管理权限的应用程序存储用户数据?

     

    如果您觉得这个帖子对您的学习、工作有所帮助,请再把这个帖子分享给你的同学、同事和朋友。

     

    如果您想阅读更多的 "Windows 应用程序兼容性",请打开索引页面:

    http://social.microsoft.com/Forums/zh-CN/windowscompatzh/thread/11ab5032-fc98-4b59-a52a-0f2faf8f071f

     


    如果您对我们的论坛在线支持服务有任何的意见或建议,请通过邮件告诉我们。
    MSDN 论坛好帮手 立刻免费下载  MSDN 论坛好帮手
    2011年4月29日 16:09

答案

  •  

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

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

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

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

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

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

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

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

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

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

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

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

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

    请切记:

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

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

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

     


    如果您对我们的论坛在线支持服务有任何的意见或建议,请通过邮件告诉我们。
    MSDN 论坛好帮手 立刻免费下载  MSDN 论坛好帮手
    2011年4月29日 16:09