日期:2014-05-20  浏览次数:20682 次

请教一个读取文件问题,高手解决?
如:
d:\file\file.ini
d:\file\file1\file.ini
d:\file\file2\file.ini
d:\file\file3\file.ini

d盘下面有3个文件夹,和一个文件,现在需要从d:\file目录开始获取下面所有file.ini文件
请问有谁做过没有啊。

------解决方案--------------------
首选实例化File: File file = new File("d:\\file");
然后获取它所有的子元素.file.listFiles()!
判断是否是目录? isDirectory, 是目录就继续找, 不是目录就判断是不是file.ini

可以用递归弄一下
------解决方案--------------------
用FileFilter
------解决方案--------------------
探讨

用FileFilter

------解决方案--------------------
import java.io.File;
import java.io.FileFilter;

public class SearchFile {
 private static final class OnlyFile implements FileFilter {
public boolean accept(File pathname) {
if (pathname.isFile()) {
return true;
} else {
return false;
}
}
 }

 public static void main(String[] args) {
if (args.length != 2) {
System.out.println("使用说明:请输入java SearchFile 目录 文件名");
} else {
File file = new File(args[0]);
File[] files = file.listFiles(new OnlyFile());
for (File f : files) {
if (f.getName().contains(args[1])) {
System.out.println(f.getPath());
}
}
}
 }



------解决方案--------------------
import java.io.File;
import java.io.FileFilter;


public class test {


public static void printDirect(File root)
{
if(root.getName() == "file.ini")
System.out.println(root);
 
File subroots[]=root.listFiles(new FileFilter()
{
public boolean accept(File pathname)
{
return pathname.isFile();
}
}); 

if(subroots!=null){
for(int i=0;i<subroots.length;i++){
printDirect(subroots[i]);
}
}
}
public static void main(String[] args) throws Exception {
printDirect(new File("c:"));
}
}
------解决方案--------------------
都答完了,我就不参合了
------解决方案--------------------
其实自己写个递归查询的方法就行啦、