java如何取得文件夹下所有的子目录 File f = new File("c:\\");除了f.listFiles()这个方法外,有什么直接的方法列出所有的文件夹吗?如果文件非常多用这个方法就会内在溢出,求方法 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你直接list()呢,返回所有的路径,返回类型是字符串…… f.listFiles()返回一个抽象路径名数组,这些路径名表示此抽象路径名所表示目录中的文件。是该目录中的文件,不是子目录吧?你可以这么做:public void getDir(String strPath) { File f=new File(strPath); if(f.isDirectory()) { File[] fList=f.listFiles(); for(int j=0;j<fList.length;j++) { if(fList[j].isDirectory()) getDir(fList[j].getPath); System.out.println(fList[j].getName()); } } 获得该父目录下所有子目录 windows自带的吧。tree 一下。 void recurAllFolders(File root) { for (File file : root.listFiles()) { if (file.isDirectory()) { System.out.println(file.getPath()); recurAllFolders(file); } }} 如果文件多的话listFiles()返回的结果内在装不下的。我找到方法了,和大家分享下通过FileFilter 来实现package com;import java.io.File;import java.io.FileFilter;public class FilterWenJian implements FileFilter{ String wenjian; public FilterWenJian(String extension) { this.wenjian = extension; } public boolean accept(File dir) { return dir.isDirectory(); }} /** * 列出目录的所有子文件夹 * @param path 路径 * @return 文件夹列表 */ public File[] getDir(String path){ File f = new File(path); FileFilter filter = new FilterWenJian(""); File[] list = f.listFiles(filter); return list; } 下面代码在本机上已测试成功,主要就是加一个FileFilter.过滤了文件,只保存文件夹.import java.io.*;class Test{ public static void main(String args[]) throws Exception { File aaa = new File("c:\\"); aaa.mkdir(); MyFileFilter mff = new MyFileFilter(true); System.out.println(aaa.getAbsolutePath()+aaa.isDirectory()); File[] fileNames = aaa.listFiles(mff); for(int i = 0;i<fileNames.length;i++) { System.out.println(fileNames[i].getAbsolutePath()); } }}class MyFileFilter implements FileFilter{ private boolean isDirectory; public MyFileFilter(boolean isDir) { this.isDirectory = isDir; } public boolean accept(File pathname) { if(pathname.isDirectory() == isDirectory) { return true; } else return false; }} 如何用程序 建表 create table ? 动态复制 不行 为啥呀 这是为什么呢?? 【新手提问】请问JTextField有没有清空内容的方法? 小女子,初学遇到些难题,求救!! tomcat启动时出错高手快来看看 如何画树状图? 初学JAVA,这代码怎么回事?20分! Java中如何创建一个新文件新目录 有关JTABLE的问题!急!在线等待! SCJP(YY4) 如何在构造函数中获取图象的长,宽? 为什么很简单的一断代码运行就会报错啊
是该目录中的文件,不是子目录吧?
你可以这么做:
public void getDir(String strPath)
{
File f=new File(strPath);
if(f.isDirectory())
{
File[] fList=f.listFiles();
for(int j=0;j<fList.length;j++)
{
if(fList[j].isDirectory())
getDir(fList[j].getPath);
System.out.println(fList[j].getName());
}
}
获得该父目录下所有子目录
for (File file : root.listFiles()) {
if (file.isDirectory()) {
System.out.println(file.getPath());
recurAllFolders(file);
}
}
}
我找到方法了,和大家分享下
通过FileFilter 来实现
package com;import java.io.File;
import java.io.FileFilter;public class FilterWenJian implements FileFilter{
String wenjian; public FilterWenJian(String extension) {
this.wenjian = extension;
} public boolean accept(File dir) {
return dir.isDirectory();
}} /**
* 列出目录的所有子文件夹
* @param path 路径
* @return 文件夹列表
*/
public File[] getDir(String path){
File f = new File(path);
FileFilter filter = new FilterWenJian("");
File[] list = f.listFiles(filter);
return list;
}
import java.io.*;
class Test
{
public static void main(String args[]) throws Exception
{
File aaa = new File("c:\\");
aaa.mkdir();
MyFileFilter mff = new MyFileFilter(true);
System.out.println(aaa.getAbsolutePath()+aaa.isDirectory());
File[] fileNames = aaa.listFiles(mff);
for(int i = 0;i<fileNames.length;i++)
{
System.out.println(fileNames[i].getAbsolutePath());
}
}
}
class MyFileFilter implements FileFilter
{
private boolean isDirectory;
public MyFileFilter(boolean isDir)
{
this.isDirectory = isDir;
}
public boolean accept(File pathname)
{
if(pathname.isDirectory() == isDirectory)
{
return true;
}
else
return false;
}}