WinXP和WinVista中都有一个文件夹,所有用户都有写入权限吗?

时间:2008-09-17 10:10:41

标签: windows installation

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

2 个答案:

答案 0 :(得分:2)

没有这样的文件夹。

但你可以创建一个。

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;

答案 1 :(得分:0)

我不确定所有非管理员用户都有权向其写入权限。

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