【发布时间】:2011-05-01 09:00:27
【问题描述】:
我的任务是只分配 1GB 的空间来将我的视频存储在一个特定的文件目录中,一旦它即将达到/达到 1GB,它将自动删除该目录中最旧的视频文件?
我最终找到了这些代码,但是由于与其他示例相比,“dirlist,tempFile”等名称存在差异,我遇到了如何将这些示例 1/2 代码合并到我当前现有的 mainActivity.java 文件中的问题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();
【问题讨论】:
-
也不要两次发布本质上相同的问题。并请展示您尝试过的内容、遇到的错误等...这些代码 sn-ps 没有什么特别之处,这会使它们难以在任何地方集成。
-
@Mat 问题是到目前为止我几乎只有 6 周的 android/java 编程经验,这让我成为一个新手,不知道我应该在上面进行什么更改以适应我的代码.. . 海兹 :(