当前位置: 安卓之星 -> Java开发 -> Java目录和文件操作之列出指定目录下的文件

Java目录和文件操作之列出指定目录下的文件

作者:网络 发表于: 2016-09-04 点击: 373 次
import java.io.File;
import java.io.FilenameFilter;
public class ListFileUtil
{
	//过滤文件
	static class MyFilenameFilter implements FilenameFilter   
	{
		private String surfix = ""; 
		public MyFilenameFilter(String surfix)
		{
			this.surfix=surfix;
		}
		@Override
			public boolean accept(File dir, String name) 
		{
			// TODO Auto-generated method stub
			if(new File(dir,name).isFile())
				return name.endsWith(surfix);
			return false;
		}  
	}

	// 列出所有文件夹包含的子目录的文件路径
	public static void listAllFiles(String dirName)
	{
		if(!dirName.endsWith(File.separator))
			dirName+=File.separator;
		File dirFile = new File(dirName);
		if(!dirFile.exists())
		{
			System.out.println("List失败!找不到目录:"+dirName);
			return;
		}
		File[] files = dirFile.listFiles();
		for(int i=0;i<files.length;i++)
			if(files[i].isFile())
			{
				System.out.println(files[i].getAbsolutePath()+" 是文件");
			}
			else if(files[i].isDirectory())
			{
				System.out.println(files[i].getAbsolutePath()+" 是目录");
				ListFileUtil.listAllFiles(files[i].getAbsolutePath());
			}
	}

	//列出目录中用过滤器过滤后的文件
	public static void listFilesByFilenameFilter(FilenameFilter filter,String dirName)
	{
		if(!dirName.endsWith(File.separator))
			dirName+=File.separator;
		File dirFile = new File(dirName);
		if(!dirFile.exists()||(!dirFile.isDirectory()))
		{
			System.out.println("List失败!找不到目录:"+dirName);
			return;
		}

		File[] files = dirFile.listFiles(filter); //以指定的过滤器过滤文件
		for(int i=0;i<files.length;i++)
			if(files[i].isFile())
			{
				System.out.println(files[i].getAbsolutePath()+" 是文件");
			}
			else if(files[i].isDirectory())
			{
				System.out.println(files[i].getAbsolutePath()+" 是目录");
				ListFileUtil.listAllFiles(files[i].getAbsolutePath());
			}
	}

	public static void main(String[] args)
	{
		String dir = "D:/360";
		System.out.println(dir+"目录下的内容:");
		ListFileUtil.listAllFiles(dir);

		System.out.println();
		System.out.println("经过过滤器过滤后的文件:");
		FilenameFilter myFilenameFilter = new ListFileUtil.MyFilenameFilter(".txt");
		ListFileUtil.listFilesByFilenameFilter(myFilenameFilter, dir);
	}
}

相关文章

相关文章

赶快留言冒泡

  • 评论 (0)
  • 引用通告 (0)
目前还没有任何评论.
目前还没有任何Trackbacks和Pingbacks.
吐个泡浮上去.