【问题标题】:Is there a folder in both WinXP and WinVista to which all users have writing permissions?WinXP 和 WinVista 中是否存在所有用户都具有写入权限的文件夹?
【发布时间】:2008-09-17 10:10:41
【问题描述】:

我们有一个安装到 Program Files 文件夹的 NET 应用程序。 应用程序本身会写入一些文件并为其应用程序文件夹创建一些目录。 但是当一个普通的 Windows 用户尝试使用我们的应用程序时,它会崩溃,因为该用户没有写入应用程序文件夹的权限。 WinXP 和 WinVista 中是否有默认所有用户都具有写入权限的文件夹?所有用户文件夹或类似的东西?

【问题讨论】:

    标签: windows installation


    【解决方案1】:

    没有这样的文件夹。

    但你可以创建一个。

    CSIDL_COMMON_APPDATA 在 Vista 中映射到 %ProgramData% (c:\ProgramData),在 XP 中映射到 c:\Documents and Settings\AllUsers\Application Data

    随意在您的安装程序中创建一个文件夹并设置 ACL,以便每个人都可以写入该文件夹。

    请记住,COMMON_APPDATA 是在通用控件库的版本 5 中实现的,这意味着它在 Windows 2000 及更高版本中可用。在 NT4 中,您可以在安装目录和 Windows 98 及以下系统中创建该文件夹,因为这些系统无论如何都没有权限系统。

    这里是一些用于创建该文件夹的示例 InnoSetup 代码:

    [Dirs]
    Name: {code:getDBPath}; Flags: uninsalwaysuninstall; Permissions: authusers-modify
    
    [Code]
    
    
    function getDBPath(Param: String): String;
    var
       Version: TWindowsVersion;
    begin
      Result := ExpandConstant('{app}\data');
      GetWindowsVersionEx(Version);
      if (Version.Major >= 5) then begin
        Result := ExpandConstant('{commonappdata}\myprog');
      end;
    end;
    

    【讨论】:

    • 太棒了,这正是我想要的。
    【解决方案2】:

    我不确定是否存在所有非管理员用户都有权写入的单一路径。

    我认为正确的应该是<User>\Application Data

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-10
      • 2010-11-27
      • 2014-03-27
      • 2011-05-05
      • 2020-12-12
      • 1970-01-01
      • 2011-05-12
      • 2013-07-11
      相关资源
      最近更新 更多