如何自动查找文件? 已经知道文件名,怎么样自动往上或者往下或者跨盘寻找文件?文件的list方法只能在指定路径遍历,有没有一个类或者一种方法自动查找的? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 将 File[] 按名排序到集合类,再用集合类的方法操作这些元素是向前移还是向后移试试! 向下递归的方法,其中path为根路径,查找path目录及其子目录……public static List getChildDirs(String path) throws Exception { List dirs=new ArrayList(); File [] filelist=new File(path).listFiles(); if(filelist==null) return dirs; for(int i=0; i<filelist.length; i++) { if(filelist[i].isDirectory()) { String childPath=filelist[i].getPath(); dirs.add(childPath); } } return dirs; } public static List getChildFiles(String path) throws Exception { List files=new ArrayList(); File [] filelist=new File(path).listFiles(); if(filelist==null) return files; for(int i=0; i<filelist.length; i++) { if(filelist[i].isFile()) { String childPath=filelist[i].getPath(); files.add(childPath); } } return files; }然后用下面的方法调用上面的两个函数 List childFiles=getChildFiles(path); for(Iterator iter=childFiles.iterator(); iter.hasNext(); ) { String childFile=(String) iter.next(); } List childDirs=getChildDirs(path); for(Iterator iter=childDirs.iterator(); iter.hasNext(); ) { String childDir=(String) iter.next(); } 现有一路经结构: F: a b a.txt c a.txt a.txt public class CreatFile { static ArrayList findFilePath = new ArrayList(); //path 为根路径。findFileName 为要查找的文件名 private static void findFile(String path,String findFileName){ File file = new File(path); if(file.isDirectory()){ File[] files = file.listFiles(); for(int i = 0; i < files.length;i++){ if(files[i].isFile()){ if(files[i].getName().equals(findFileName)){ findFilePath.add(files[i].getPath()); } }else{ findFile(files[i].getPath(),findFileName); } } } } public static void main(String[] as) { findFile("F:\\a","a.txt"); for(int i = 0;i < findFilePath.size();i++){ System.err.println("" + (String)findFilePath.get(i)); } }}运行结果:F:\a\a.txtF:\a\b\a.txtF:\a\b\c\a.txt 大神,求教xml反编译txt的问题 Java和C之间数据格式转换问题(做过和C程序交互的达人请帮忙看看)~~~ javah命令报错,不知道怎么解决了,跪求。。。 有没有人玩连连看?讨论一下java算法 请问递归可不可以用多线程? 求Lucene4.5中文api 绝对地送分。。。。android字符串顺序问题 关于byte[]的问题 关于ConsoleReader类问题.... 那位兄台有电子版THINKING IN JAVA的电子的配套代码,能否给我发一个 各位大仙初学JAVA的第一本书是什麽? 怎样计算程序运行的时间(在线等)
查找path目录及其子目录……
public static List getChildDirs(String path) throws Exception {
List dirs=new ArrayList();
File [] filelist=new File(path).listFiles();
if(filelist==null) return dirs;
for(int i=0; i<filelist.length; i++) {
if(filelist[i].isDirectory()) {
String childPath=filelist[i].getPath();
dirs.add(childPath);
}
}
return dirs;
}
public static List getChildFiles(String path) throws Exception {
List files=new ArrayList();
File [] filelist=new File(path).listFiles();
if(filelist==null) return files;
for(int i=0; i<filelist.length; i++) {
if(filelist[i].isFile()) {
String childPath=filelist[i].getPath();
files.add(childPath);
}
}
return files;
}然后用下面的方法调用上面的两个函数
List childFiles=getChildFiles(path);
for(Iterator iter=childFiles.iterator(); iter.hasNext(); ) {
String childFile=(String) iter.next();
}
List childDirs=getChildDirs(path);
for(Iterator iter=childDirs.iterator(); iter.hasNext(); ) {
String childDir=(String) iter.next();
}
F:
a
b a.txt
c a.txt
a.txt
public class CreatFile { static ArrayList findFilePath = new ArrayList(); //path 为根路径。findFileName 为要查找的文件名
private static void findFile(String path,String findFileName){
File file = new File(path);
if(file.isDirectory()){
File[] files = file.listFiles();
for(int i = 0; i < files.length;i++){
if(files[i].isFile()){
if(files[i].getName().equals(findFileName)){
findFilePath.add(files[i].getPath());
}
}else{
findFile(files[i].getPath(),findFileName);
}
}
}
}
public static void main(String[] as) {
findFile("F:\\a","a.txt");
for(int i = 0;i < findFilePath.size();i++){
System.err.println("" + (String)findFilePath.get(i));
} }
}
运行结果:
F:\a\a.txtF:\a\b\a.txtF:\a\b\c\a.txt