zoukankan      html  css  js  c++  java
  • Java读取指定路径下的文件列表

    直接贴代码吧。不过这里要做一个简单的说明,对于这个程序,我们必须保证我们在F盘下有一个log_files的文件夹,因为在后面写入文件的时候,如果路径中的文件不存在,是程序可以自动为其添加,但如果没有了这个路径,则程序会报找不到文件路径的异常。你可以对这个异常进行人性的处理,还可以在程序要向这个路径写入数据之前,创建出这个路径。

    import java.io.File;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.Scanner;
    
    public class ListRoots {
    	
    	private static final String LOG_BASE_PATH = "F:\log_files\";
    	private static ArrayList<String> mfiles = new ArrayList<String>();
    	
    	/**
    	 * 得到给定路径下的目录或是文件
    	 * @param strPath
    	 * @throws Exception
    	 */
    	private static void displayDirsOrFiles(String strPath) throws Exception {
    		try {
    			File f = new File(strPath);
    			if (f.isDirectory()) {
    				File[] fList = f.listFiles();
    				for (int j = 0; j < fList.length; j++) {
    					if (fList[j].isDirectory()) {
    						System.out.println("Directory is: "	+ fList[j].getPath());
    						displayDirsOrFiles(fList[j].getPath()); // 对当前目录下仍是目录的路径进行遍历
    					}
    				}
    				for (int j = 0; j < fList.length; j++) {
    					if (fList[j].isFile()) {
    						String name = fList[j].getPath().toString();
    						System.out.println("Filename is: " + name);
    						mfiles.add(fList[j].getPath());
    					}
    				}
    			}
    		} catch (Exception e) {
    			System.err.println("Error: " + e);
    		}
    	}
    	
    	/**
    	 * 向文件中写入数据
    	 * @param dirOrfiles
    	 * @throws IOException
    	 */
    	private static void writeDetailToFiles(ArrayList<String> dirOrfiles) throws IOException {
    		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd H:m:s");
    		toFiles(getLogPath(), format.format(new Date()) + " -- 检测到文件" + dirOrfiles.size() + "个:" + "
    ");
    		for (String file : dirOrfiles) {
    			toFiles(getLogPath(), file + "
    ");
    		}
    		toFiles(getLogPath(), "--------------------------------------------------------------------------------------------------------------------------
    ");
    	}
    	
    	/**
    	 * 获得写入数据的路径
    	 * @return
    	 */
    	private static String getLogPath() {
    		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
    		return LOG_BASE_PATH + format.format(new Date()) + ".txt";
    	}
    	
    	/**
    	 * 向dir路径下写入数据data
    	 * @param path
    	 * @param data
    	 */
    	private static void toFiles(String path, String data) throws IOException {
    		File file = new File(path);
    		if (!file.exists()) {
    			file.createNewFile();
    		}
    		
    		FileWriter fw = new FileWriter(file, true);
    		fw.write(data);
    		fw.flush();
    		fw.close();
    	}
    
    	public static void main(String[] args) {
    		
    		Scanner input = new Scanner(System.in);
    		System.out.println("请输入待遍历目录路径(Format: F:\a\b):");
    		String strPath = input.nextLine();
    		
    		try {
    			displayDirsOrFiles(strPath.replace("\", "\\"));
    			writeDetailToFiles(mfiles);
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    }

    源代码下载连接

  • 相关阅读:
    Burpsuite intruder模块 越过token进行爆破,包含靶场搭建
    burpsuiteb windows10 下载与安装
    sqlmap的命令总结
    Vue.js与jQuery混用
    IE低版本cors跨域请求
    window.open打开网址被拦截
    一图一知之python3数据类型
    一图一知-vue强大的slot
    一图一知-强大的js数组
    windows中git输错密码后不能修改问题
  • 原文地址:https://www.cnblogs.com/fengju/p/6336145.html
Copyright © 2011-2022 走看看