У меня была задача выделить только 1 ГБ места для хранения моих видео в определенном каталоге файлов, где он будет автоматически удалять самый старый видеофайл в этом каталоге, когда он достигнет / достигнет 1 ГБ?
И в конце концов я нашел этот код, но у меня осталась проблема с тем, как включить эти примеры кода 1/2 в мой текущий существующий файл mainActivity.java из-за различий в именах, таких как «dirlist, tempFile», по сравнению с другими примерами 1/2 дается для выполнения задачи проверки и удаления размера.
Извините, я новичок в android / java, поэтому я не знаю, какие "поля" нужно изменить, чтобы удовлетворить мои текущие потребности в кодировании? Может кто-нибудь помочь с тем, как я собираюсь собрать этот набор кодов в единый набор кода, который выполняет вышеупомянутые функции ??
Мой текущий существующий mainActivity.java
File dirlist = new File(Environment.getExternalStorageDirectory() + "/VideoList");
if(!(dirlist.exists()))
dirlist.mkdir();
File TempFile = new File(Environment.getExternalStorageDirectory()
+ "/VideoList", dateFormat.format(date) + fileFormat);
mediaRecorder.setOutputFile(TempFile.getPath());
(Пример 1) код для суммирования размера файла каталога в данной папке ..
private static long dirSize(File dir) {
long result = 0;
Stack<File> dirlist= new Stack<File>();
dirlist.clear();
dirlist.push(dir);
while(!dirlist.isEmpty())
{
File dirCurrent = dirlist.pop();
File[] fileList = dirCurrent.listFiles();
for (int i = 0; i < fileList.length; i++) {
if(fileList[i].isDirectory())
dirlist.push(fileList[i]);
else
result += fileList[i].length();
}
}
return result;
}
(Пример 2) набор кода для получения всех файлов в массиве и сортировки их в зависимости от даты их изменения / создания. Тогда первый файл в вашем массиве - ваш самый старый файл и удалите его.
// no idea what are the parameters i should enter
// here for my case in mainActivity??
File directory = new File((**String for absolute path to directory**);
File[] files = directory.listFiles();
Arrays.sort(files, new Comparator<File>() {
@Override
public int compare(File f1, File f2)
{
return Long.valueOf(f1.lastModified()).compareTo(f2.lastModified());
}});
file[0].delete();