java输出文件目录_Java实现打印文件路径和展示文件目录

/** 输入文件或目录,若为文件打印其路径和名字,

* 若为目录,可选文件后缀名,若不选,则打印其下所有文件,

* 若选择后缀名,则打印其下所有匹配后缀名的文件

*

*

* mist lee,2014-11-29*/

importjava.io.File;importjava.io.FilenameFilter;importjava.io.IOException;importjava.util.Scanner;public classDisplayFileState

{private static boolean flag = false;public static void main(String[] args) throwsIOException

{//String fileName = rawInput();

Scanner in = newScanner(System.in);

System.out.print("请输入文件或者目录路径:");

String fileName=in.nextLine();

File f= newFile(fileName);if(f.isFile())

{

System.out.println("所输入的路径是文件");

System.out.println(f.getCanonicalPath());

}else if(f.isDirectory())

{

System.out.println("所输入的路径是目录");

System.out.println("请输入要查找文件的后缀名,若为空则显示所有文件");

String ext=in.nextLine();

System.out.println("您要查找的文件的后缀名是:" +ext);

spreadFileDir(f,ext);

}else{

System.out.println("输入有误,请确认后重新输入!");

}if(flag)

System.out.println("没能找到你所需要的文件");

}//展开目录文件

private static void spreadFileDir(File f, String ext) throwsIOException

{

String[] fileNames=f.list();//boolean flag = false;

for(int i=0;i

{

File subFile= newFile(f.getPath(),fileNames[i]);if(subFile.isFile())

{if(ext.equals(" "))

System.out.println(subFile.getCanonicalPath());else{

ExtensionFilter extFilter= newExtensionFilter(ext);boolean isTrue =extFilter.accept(f, fileNames[i]);if(isTrue)

System.out.println(subFile.getCanonicalPath());elseflag= true;//flag = isTrue^false;

}

}else if(subFile.isDirectory())

{

spreadFileDir(subFile,ext);

}else{

System.out.println("something is worong!");

}

}

}

}//辅助过滤类,用以处理文件的后缀名

class ExtensionFilter implementsFilenameFilter

{publicExtensionFilter(String ext)

{

extension= "." +ext;

}

@Overridepublic booleanaccept(File dir, String name) {//TODO Auto-generated method stub

returnname.endsWith(extension);

}privateString extension;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值