如何存储每个用户的临时文件?

时间:2011-12-31 19:35:58

标签: delphi

我有时需要从我的程序中存储一些临时文件,目前我使用的AppData路径有效。但是,我刚刚在Windows上的非管理员(来宾)帐户上尝试我的程序。这导致错误,因为Windows拒绝我访问AppData文件夹。

使用最理想的路径代替AppData,即使权限最低的用户也可以使用?

我尝试使用谷歌搜索这个,因为我确信我在微软网站上看过一篇文章,其中列出了所需的不同路径和要求,但我找不到它。

由于

1 个答案:

答案 0 :(得分:12)

如果要存储临时文件,请使用临时目录中的子文件夹。使用GetTempPath找出它的位置。

请注意,在所有现代版本的Windows上,此文件夹是每个用户文件夹,不在不同用户之间共享。如果您想要一个在所有用户之间共享的位置,那么您需要CSIDL_COMMON_APPDATA文件夹。但是,正如您所发现的那样,标准用户无权在该文件夹中写入。标准方法是安装程序创建一个带有许可ACL的子文件夹,该ACL允许标准用户有足够的写访问权。