zoukankan      html  css  js  c++  java
  • 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);
            }
             
        }
    }
    

      

  • 相关阅读:
    http
    Hive与HBase的区别与联系
    超好用python库(Pathlib)
    JS中every()和some()的用法
    kubectl create 和 kubectl apply区别
    Servlet/Tomcat/ Spring 之间的关系
    Android Fragment详解
    vue路由钩子拦截器beforeEach和afterEach及页面路由变化路由监听
    Vue + Webpack 将路由文件分拆为多个文件分别管理
    VUE中常用的几种import(模块、文件)引入方式
  • 原文地址:https://www.cnblogs.com/wzihan/p/13395104.html
Copyright © 2011-2022 走看看