用于写入缓存文件的目录位置

时间:2014-05-27 11:13:13

标签: caching

您好我正在尝试找出保存缓存文件的最佳位置。 我有一个Windows表单应用程序,使用自定义工具从服务器更新用户的数据。 我想在缓存文件中写入用户计算机上完成的最新更新的时间戳。 保存此文件的最佳位置在哪里: 1.在应用程序目录中(c:\ program files ..) 2.在临时位置,例如用户个人资料文件夹或c:\ windows \ temp 3.在用户具有读/写权限的任何位置(例如c:\ dataupdates)。

1 个答案:

答案 0 :(得分:1)

不在应用程序目录中。这很清楚。 :)应用程序目录甚至不应该由程序(或实际上由运行该程序的用户帐户)写入。虽然有些应用程序仍然使用这个位置,但我认为它实际上已被弃用,我认为,自从在Windows Vista和7中应用更严格的UAC以来,它已经成为一种真正的痛苦。

所以最明显的选择是:

  • 临时文件夹,用于临时文件。但请注意,您需要清理这些文件。临时文件夹默认不会自动清除,因此一直添加新文件会占用硬盘驱动器上越来越多的空间。另一方面,一些用户确实清除了他们的临时文件夹,或者可能安装了为他们执行此操作的脚本,因此您无法信任此类文件。而且,这并不总是C:\ Temp。您必须询问Windows的位置。
  • 您可以选择“任意”位置。请注意,您无法在任何地方书写。你甚至不能指望C盘存在。如果选择此选项,则必须将其设置为可配置设置。
  • %app data%目录,我个人最喜欢的目录,是应用程序存储数据的特殊目录。优点是,您可以向Windows询问此位置,并且可以根据以下内容构建相对路径该目录,因此您不必将其设置为应用程序。有关如何获取它的更多信息,请参阅此问题:C# getting the path of %AppData%

我肯定会为此选择App Data路径。