package org.fanhongtao.tools.dir; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Arrays; import org.apache.log4j.BasicConfigurator; import org.fanhongtao.lang.StringUtils; import org.fanhongtao.log.LogUtils; import org.fanhongtao.log.RunLogger; import org.fanhongtao.utils.TimeDuration; /** * 列出指定目录下的文件 * @author Dharma * @created 2009-3-31 */ public class Dir { private static char fieldSep = '\t'; private static SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); public static void dir(File path) { StringBuffer buf = new StringBuffer(1024); File[] files = path.listFiles(); if (files == null) // 注意这里需要判断空值 { return; } Arrays.sort(files); for (File one : files) { if (one.isDirectory()) { dir(one); } else if (one.isFile()) { try { buf.append(one.getCanonicalPath()); buf.append(fieldSep); buf.append(one.length()); buf.append(fieldSep); buf.append(df.format(one.lastModified())); buf.append(StringUtils.CRLF); } catch (IOException e) { RunLogger.warn("Exception", e); } } } RunLogger.info(buf.toString()); } /** * @param args */ public static void main(String[] args) { BasicConfigurator.configure(); // 使用缺省配置 LogUtils.changeRootLayout("%m"); TimeDuration dur = new TimeDuration(); for (String arg : args) { System.out.println("Dir: " + arg); File path = new File(arg); dir(path); } dur.setStopTime(); System.err.println(dur); } }