列举一个文件夹下的所有文件

这个意思比较简单,就不多说了,直接看代码吧!
1、辅助类。
  是两个FileFilter,一个文件filter,一个目录filter
public class FileFilter implements java.io.FileFilter {

	public boolean accept(File pathname) {
		if(pathname.isFile())	{
			return true;
		}
		return false;
	}

}
public class DirectortyFilter implements FileFilter {

	public boolean accept(File pathname) {
		if(pathname.isDirectory())	{
			return true;
		}
		return false;
	}

}

2、方法。
	/**
	 * 
	 * @param parentName 绝对路径地址
	 * @throws Exception
	 */
	public static void checkDir(String parentName)	throws Exception{
		File file = new File(parentName);
		boolean flag = true;
		while (flag)	{
			//查出parentName下的所有文件
			File[] fileNames = file.listFiles(new FileFilter());
			if(fileNames != null)	{
				for (int i = 0; i < fileNames.length; i++) {
					File f = fileNames[i];
					System.out.println(f.getParent()+File.separatorChar+f.getName());
				}				
			}
			//查出parentName下的所有目录
			File[] directories = file.listFiles(new DirectortyFilter());
			if(directories != null)	{
				for (int i = 0; i < directories.length; i++) {
					File dir = directories[i];
					//绝对路径
					String path =  dir.getAbsolutePath();
					//递归
					checkDir(path);
				}
			}
			flag = false;
		}
	}

3、测试方法

	public static void main(String[] args) throws Exception {
		System.out.println("开始------------->");
		checkDir("E:/");
		System.out.println("<-----------------结束");
	}

你可能感兴趣的:(java,F#)