2015-01-19 1 views
1

Вот функции, которые я использую, чтобы сохранить и кэш загрузки:Android: Как получить список всех файлов кеша в приложении?

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 ArrayLists из объекта 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); 

Можно ли получить какие ключи кэша содержат объект? Я хотел бы иметь arraylist этого cache1, cache2 и cache2.

+0

Вы хотите найти список всех доступных файлов кеша? – Shaunak

+0

Да, это именно то, что я имею в виду –

ответ

0

Сначала вам нужно указатель на каталог, в котором хранятся файлы, вы можете получить, что из объекта контекста с использованием,

File dir = context.getFilesDir() 

Это возвращает объект типа File. На этом можно использовать функцию listFiles(), чтобы получить список файлов кэша, например, так:

dir.listFiles() 

Вот документация Context и File, которые имеют эти функции для дальнейшего чтения.

Надеюсь, что это поможет.

+0

мой бог, что слишком легко для вас. Спасибо, в любом случае! –

+0

в любое время! рад, что это помогло! – Shaunak

Смежные вопросы