3

如果我将我的应用程序安装到程序文件中,它是否总是能够在其安装目录中创建和写入文件?它似乎可以在许多不同版本的 Windows 中使用,但是在某些情况下这不起作用吗?

主要是我使用这种方法进行日志记录。如果这不是正确的方法,是否有更好的记录位置?

注意:我的安装程序需要管理员权限才能运行,它授予安装目录中所有用户的完全访问权限。

4

2 回答 2

4

应用程序不以用户身份运行,用户以用户身份运行。如果您将应用程序安装到 Program Files 中,并且假设您需要提升权限来执行此操作,那么当您的标准用户然后运行该应用程序时,即需要权限的用户。

  1. 以提升的权限安装应用程序(例如,用户:管理员)
  2. AppName 文件夹上的所有权限很可能是“Admin:Full, Users:Read”
  3. 用户运行应用程序,因此无法更改任何文件

在安装时,您的安装程序需要知道它自己的哪些文件需要对标准用户可写,并相应地设置权限。当然,无论如何,用户数据都不应该在 Program Files 中。这就是 %appdata% 和用户配置文件的用途,通常。

如果您的应用程序有一个 globalsettings.ini 或其他位于“Program Files\YourApp”中的文件,那么当您拥有管理员权限时(即在安装时),您需要向所有用户授予对该 globalsettings.ini 文件的写入权限。或高级用户。或者一组。或者任何适合您的应用的内容。

总之,,用户没有对 ProgFiles 的默认写访问权限,也不应该。

于 2011-12-08T00:13:22.983 回答
0

是的,在某些情况下这肯定不起作用,例如当您的应用程序在 Windows 7 上运行时,或者您的用户帐户是受限用户时。

我们总是将日志文件放在临时目录或 AppData 等特殊文件夹中。

于 2011-12-08T00:01:31.897 回答