如何自动查找文件? 已经知道文件名,怎么样自动往上或者往下或者跨盘寻找文件?文件的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 请教一个与【IP设置】和【路由配置】相关的问题 java 继承 环境变量 java 读取图片缩略图数据 〔紧急〕SOCKET发送HTTP请求问题请教! java的菜单如何设置黑点!? 在JScrollPane中放一个JTextArea,怎样使JTextArea随着文字的输入往下滑。用什么函数? String保存的数据最长能有多少字符?一般最长设置多少合适呢? 请问:在jb7里怎样配置才能访问oracle数据库? 数据库连接问题? 各位大仙初学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