在Windows上我的应用缓存的合适位置

3 投票
7 回答
1765 浏览
提问于 2025-04-11 18:43

我的应用程序会把一些数据缓存到磁盘上。因为这个缓存可能会很大,所以不应该存放在网络驱动器上。缓存的数据应该在应用程序每次启动时都能保留。我有一个让用户选择存储位置的机制,但我希望默认位置是合理的,并且适合这个平台。

那么,适合存放这种缓存的地方应该在哪里呢?有没有什么接口可以用来确定合适的位置?我该如何在Python中调用它呢?

7 个回答

2

在Windows系统中,有很多地方可以放置你的应用程序文件。这个页面列出了这些地方(虽然这个列表是针对.Net的,但大多数特殊文件夹在Windows中都是标准的)。简单来说,你需要决定是要为每个用户单独存储缓存,还是只在本地机器上,或者是针对某个应用程序,还是共享给大家用等等。

我对Python不太熟悉,所以不能具体告诉你怎么获取这些路径,但我相信这里有更懂的人可以帮你。

3

Windows应用程序通常会把它们的(永久性)应用数据存放在一个标准的位置,这个位置可以通过环境变量 %APPDATA%(当前用户)或者 %ALLUSERSPROFILE%(所有用户)来找到。你可以用一些简单的方法来访问这些位置,比如下面这个(这里只是基础的用法,没有做很好的错误检查!):

import os
app_path = os.getenv("APPDATA") + "\\MyApplicationData"
try:
    os.mkdir(app_path)
except WindowsError:
    # already exists

现在你就有了一个属于你自己应用的文件夹。

2

你可以看看这里:http://en.wikipedia.org/wiki/Environment_variable#User_management_variables。用户目录下的任何东西都是可以的。如果是针对所有用户的,那就应该用:%ALLUSERSPROFILE%。如果是针对某个特定用户的,记得检查一下权限是否正确。

想了解更多关于其他Windows版本的信息,可以去MSDN看看。环境变量在不同的系统之间可能会有所不同。

撰写回答