如果我将我的应用程序安装到程序文件中,它是否总是能够在其安装目录中创建和写入文件?它似乎可以在许多不同版本的 Windows 中使用,但是在某些情况下这不起作用吗?
主要是我使用这种方法进行日志记录。如果这不是正确的方法,是否有更好的记录位置?
注意:我的安装程序需要管理员权限才能运行,它授予安装目录中所有用户的完全访问权限。
如果我将我的应用程序安装到程序文件中,它是否总是能够在其安装目录中创建和写入文件?它似乎可以在许多不同版本的 Windows 中使用,但是在某些情况下这不起作用吗?
主要是我使用这种方法进行日志记录。如果这不是正确的方法,是否有更好的记录位置?
注意:我的安装程序需要管理员权限才能运行,它授予安装目录中所有用户的完全访问权限。
应用程序不以用户身份运行,用户以用户身份运行。如果您将应用程序安装到 Program Files 中,并且假设您需要提升权限来执行此操作,那么当您的标准用户然后运行该应用程序时,即需要权限的用户。
在安装时,您的安装程序需要知道它自己的哪些文件需要对标准用户可写,并相应地设置权限。当然,无论如何,用户数据都不应该在 Program Files 中。这就是 %appdata% 和用户配置文件的用途,通常。
如果您的应用程序有一个 globalsettings.ini 或其他位于“Program Files\YourApp”中的文件,那么当您拥有管理员权限时(即在安装时),您需要向所有用户授予对该 globalsettings.ini 文件的写入权限。或高级用户。或者一组。或者任何适合您的应用的内容。
总之,不,用户没有对 ProgFiles 的默认写访问权限,也不应该。
是的,在某些情况下这肯定不起作用,例如当您的应用程序在 Windows 7 上运行时,或者您的用户帐户是受限用户时。
我们总是将日志文件放在临时目录或 AppData 等特殊文件夹中。