很简单的一个需求,要求读取当前目录下所有的文件和目录,并显示出来。将实现记录下来,以备需要时参考。
下面时具体的实现
/**
* 读取当前目录下的文件路径
*
* @author
* @since jdk1.4.2
* @version 1.0
* @date 2007-06-30
*
*/
public class ViewDirsAndFiles {
private static String listFileStr = "";
private static int dirNumber = 0;
private static int fileNumber = 0;
private static String dirNumberString = "** 当前目录下的目录数:";
public static void main(String[] args) {
try{
File saveFile = new File(args[1]);
FileWriter fw = new FileWriter(saveFile);
ViewDirsAndFiles lf = new ViewDirsAndFiles();
lf.listFile(args[0]);
String dirNumberLine = dirNumberString += dirNumber + "\r\n";
String allWriterContent = dirNumberLine + listFileStr;
//String fileNumberLine = fileNumberString += fileNumber + "\r\n\r\n";
//String allWriterContent = dirNumberLine + fileNumberLine + listFileStr;
fw.write(allWriterContent);
fw.close();
System.out.print("\r\n" + dirNumberLine);
//System.out.print(fileNumberLine);
}catch (ArrayIndexOutOfBoundsException aiobe) {
//参数提示
//System.out.println("## Usage: ListFiles <source dir=""> <target file="">");
System.out.println("## 用法: java org.snailheart.util.ViewDirsAndFiles " +"<当前目录> <目标文件>");
}catch (IOException ioe) {
System.out.println("## IO error!\r\n" + ioe.toString());
}
}
/**
* 获取目录下的所有文件的绝对路径
* @param currDir 要查询的目录名
*/
public void listFile(String currDir) {
File file = new File(currDir);
File[] list = file.listFiles();
for(int i = 0;i < list.length;i++) {
try{
if (list[i].isDirectory()){ //是否是目录
new ViewDirsAndFiles().listFile(list[i].toString());
dirNumber++;
}else {
listFileStr += list[i].getAbsolutePath() + "\r\n";
//System.out.println(list[i].getAbsolutePath());
fileNumber++;
}
}catch (Exception ex) {
listFileStr += "Access deny:" + list[i].getAbsolutePath() + "\r\n";
System.out.println("Access deny:" + list[i].getAbsolutePath());
}
}
}
}
读取显示当前目录下的文件及目录-java io
最新推荐文章于 2024-12-20 09:30:00 发布