在本地缓存文件的位置

Where to cache files locally

我们的 WPF 桌面应用程序在启动时从云中的服务器下载一些图像。 由于下载需要一些时间(最多一分钟)并且图像很少更改,我想将它们缓存到用户的磁盘中,这样它们就不会在后续启动时加载。

放在哪里比较合适?这些文件可能会存在很长时间(几年),但如果删除它们,启动只会重新下载它们。

我考虑过的选项是将它们放在 TEMP 文件夹(我从 Path.GetTempPath() 获得的路径)或 IsolatedStorage 中。我不知道哪个最好,或者是否有更好的选择。

如果我希望图片只能由登录用户按原样访问,我会选择 ApplicationData:

The directory that serves as a common repository for application-specific data for the current roaming user.

您可以这样访问:

Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "AppName", "Images");

如果我希望这台机器上的所有用户都可以访问图片,我会选择 CommonApplicationData:

The directory that serves as a common repository for application-specific data that is used by all users.

您可以这样访问:

Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "AppName", "Images");