Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何索引android设备上的所有文件_Java_Android_Search_Indexing - Fatal编程技术网

Java 如何索引android设备上的所有文件

Java 如何索引android设备上的所有文件,java,android,search,indexing,Java,Android,Search,Indexing,我正在开发一个应用程序,它将设备上所有文件的路径索引到sql数据库中 稍后我将使用该数据库进行快速搜索 到目前为止,我正在使用库获取sd卡中的所有文件和目录 Collection<File> sdCardFiles = org.apache.commons.io.FileUtils.listFilesAndDirs(new File(sdCard), new RegexFileFilter(".*"), TrueFileFilter.TRUE); Collection sdCa

我正在开发一个应用程序,它将设备上所有文件的路径索引到sql数据库中

稍后我将使用该数据库进行快速搜索

到目前为止,我正在使用库获取sd卡中的所有文件和目录

Collection<File> sdCardFiles = org.apache.commons.io.FileUtils.listFilesAndDirs(new File(sdCard),
 new RegexFileFilter(".*"),
 TrueFileFilter.TRUE);
Collection sdCardFiles=org.apache.commons.io.FileUtils.listFilesAndDirs(新文件(sdCard)),
新的RegexFileFilter(“.*”),
TrueFileFilter.TRUE);
然后将它们插入数据库

List<String> temp = new ArrayList<>();
for (File file : sdCardFiles) {
    temp.add(file.getPath());
    if (temp.size() > 10) {
        db.insertBunch(temp);
        temp.clear();
        }
    }
}
List temp=new ArrayList();
用于(文件:sdCardFiles){
temp.add(file.getPath());
如果(温度大小()>10){
db.插入束(温度);
温度清除();
}
}
}
1.是否有其他方法可以减少Cpu、Ram和时间的使用

2.大多数文件都有相同的父目录,所以我们可以在这种情况下使用类似Trie的东西吗

3.如何通过MediaStore执行此操作


我在三星J7 prime上测试了这段代码,它消耗了15mb的Ram和5%的cpu(最高级别)来索引大约40000个文件

“我正在开发一个应用程序,在sql数据库中索引设备上所有文件的路径”——已经有一个设备上所有文件的数据库,名为
MediaStore
。它存在于每个安卓设备上。你为什么要再建一个?哎呀,我不知道。非常感谢@commonware“我正在开发一个应用程序,它可以索引sql数据库中设备上所有文件的路径”——设备上已经有一个所有文件的数据库,名为
MediaStore
。它存在于每个安卓设备上。你为什么要再建一个?哎呀,我不知道。非常感谢@commonware