Android: 如何获取应用中所有缓存文件的列表?

Android: How to get a list of all cache files in an app?

以下是我用来保存和加载缓存的函数:

public static void SAVE_CACHE(Context context, String key, Object object) throws IOException {
    FileOutputStream fos = context.openFileOutput(key, Context.MODE_PRIVATE);
    ObjectOutputStream oos = new ObjectOutputStream(fos);
    oos.writeObject(object);
    oos.close();
    fos.close();
}

public static Object LOAD_CACHE(Context context, String key) throws IOException,
        ClassNotFoundException {
    FileInputStream fis = context.openFileInput(key);
    ObjectInputStream ois = new ObjectInputStream(fis);
    Object object = ois.readObject();
    return object;
}

假设我有 3 个对象 Contact 的数组列表保存在缓存中:

List<Contact> contacts = new ArrayList<Contact>();
contacts.add(new Contact());

SAVE_CACHE(context, "cache1", contacts);
SAVE_CACHE(context, "cache2", contacts);
SAVE_CACHE(context, "cache3", contacts);

是否可以获取哪些缓存键包含对象?我想要一个缓存 1、缓存 2 和缓存 2 的数组列表。

首先您需要指向存储文件的目录的指针,您可以使用

从上下文对象中获取它
File dir = context.getFilesDir()

此 returns 类型的对象 File。在此您可以使用函数 listFiles() 来获取缓存文件列表,如下所示:

 dir.listFiles()

这里是 ContextFile 的文档,其中包含这些函数以供进一步阅读。

希望对您有所帮助..