java获取指定目录中的文件列表

Posted 奥兰王子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java获取指定目录中的文件列表相关的知识,希望对你有一定的参考价值。

最近项目中会动态生成文件html及相关资源文件(css,js,png,mp3),为了防止文件名重复,需要获取目录中相同类型文件的最大编号,下面我用代码来实现获得文件列表。

	public static void getFiles(String path) {

		File file = new File(path);
		// 如果这个路径是文件夹
		if (file.isDirectory()) {
			// 获取路径下的所有文件
			File[] files = file.listFiles();
			for (int i = 0; i < files.length; i++) {
				// 如果还是文件夹 递归获取里面的文件 文件夹
				if (files[i].isDirectory()) {
					System.out.println("目录:" + files[i].getPath());
					getFiles(files[i].getPath());

				} else {
					System.out.println("文件:" + files[i].getName()); // files[i].getPath());
				}
			}

		} else {

			System.out.println("文件:" + file.getPath());

		}
	}

  

	public static File[] getFilter(String strFilePath, String strExtension) {

        File[] list = new File(strFilePath).listFiles();
        
        for(File file : list)
        {
           if(file.isFile())
           {
               if (file.getName().endsWith(strExtension)) {
                   System.out.println(file.getAbsolutePath());
               }
           }
        }

        return list;
	}

  

        如果想要获得当前文件夹中的文件名只需要 String [] fileName = file.list();  就可以了。如果要包括文件中的文件名就可以用递归的方式。下面是两个具体的实现。

  其中public static String [] getFileName(String path)是只得到当前文件中的文件名。public static void getAllFileName(String path,ArrayList<String> fileName)是包括当前文件及其子文件的文件名。

public class GetFileName
{
    public static String [] getFileName(String path)
    {
        File file = new File(path);
        String [] fileName = file.list();
        return fileName;
    }
    public static void getAllFileName(String path,ArrayList<String> fileName)
    {
        File file = new File(path);
        File [] files = file.listFiles();
        String [] names = file.list();
        if(names != null)
        fileName.addAll(Arrays.asList(names));
        for(File a:files)
        {
            if(a.isDirectory())
            {
                getAllFileName(a.getAbsolutePath(),fileName);
            }
        }
    }
    public static void main(String[] args)
    {
        String [] fileName = getFileName("F:\xiaoshuo");
        for(String name:fileName)
        {
            System.out.println(name);
        }
        System.out.println("--------------------------------");
        ArrayList<String> listFileName = new ArrayList<String>(); 
        getAllFileName("F:\xiaoshuo",listFileName);
        for(String name:listFileName)
        {
            System.out.println(name);
        }
         
    }
}

  

以上是关于java获取指定目录中的文件列表的主要内容,如果未能解决你的问题,请参考以下文章

IO流 创建java文件列表

java中如何获取目录中的所有文件

片段中的 notifyDataSetChanged() 不刷新列表视图

代码重构 & JDT获取指定目录下Java文件对应的ICompilationUnit (可获取Binding)

代码重构 & JDT获取指定目录下Java文件对应的ICompilationUnit (可获取Binding)

在 Objective-C 中的指定路径获取具有特定扩展名的文件列表