我现在的需求是 :我要去本地磁盘的一个指定文件夹搜索一个文件(比如文件名是:myName.txt)是否存在,如果存在我就做一些事情,如果不存在我就做另外一给些事情。
前提是,指定文件夹下会有较多文件
问题是:1.用 file.isDirectory()方法,这个方法效率如何 ?如果指定文件夹中有很多很多文件,用这个方法搜索我想要的文件是否可以?
2.如果1中的方法效率在指定文件夹中有很多文件的情况下比较低下的话,那一般实际项目中会采用什么方法来解决这个问题?
请经验人士指教!非常感谢!入冬了,请随身携带秋裤。。
PS:我现在不知道 file.isDirectory()的效率如何,但我有个解决办法,就是设计个数据库表来存这个文件名,等到我搜索的时候,我就直接去查数据库。 但是小弟以为,能不操作数据库就不操作数据库嘛,所以提出上述问题。大侠们可以不仅仅限于数据库层来解决这个问题,也可以推荐我别的方法,给出思路即可!
------解决思路----------------------
file=new File(flePath);//既然已经知道了路径
file.exs ts();//那就直接看是否存在
------解决思路----------------------
File file=new File("dirpath","myName.txt");
if(file.exist()){
//
}else{
//
}
不需要搜索
isDirectory()用来测试File表示的文件是否是一个目录,估计楼主是搞错了吧
------解决思路----------------------
直接用lucene检索文件名,自己写的方法对不对暂且不说,效率肯定也不行。这个楼主还可以顺带学习全文检索
------解决思路----------------------
在一个大的文件夹下面搜索一个指定文件,
是这意思吧。
提一个可以提高效率的方法吧。
可以尝试使用多线程,当然要控制好每个线程的范围,不要重复遍历。。
file.isDirectory()是判断一个文件是否是文件夹的,不知道楼主用来干什么。
------解决思路----------------------
1,2楼对的,怎么答非所问啦??
你不是就是要判断指定目录下的一个指定文件是否存在?
File f = new File("xxx/xxx/xxx/myName.txt");
if(f.exist()){
// 存在这个文件,做你的事
}else{
// 不存在这个文件,做你的事
}
------解决思路----------------------
2楼的方法正确,好奇目录文件很多,性能究竟如何?
------解决思路----------------------
你就看有没有这个目录 何来效率一说
------解决思路----------------------
大概解决方法:递归遍历该目录下所有File,如果遇到文件,则那fileName与你当前文件比对,递归的跳出条件就是file.isFile为true and fileName = "你个人的文件名"。