黑马程序员技术交流社区
标题: 哈尔滨校区简单利用File类和递归显示指定文件夹中指定扩.... [打印本页]
作者: rockybull 时间: 2015-12-16 23:01
标题: 哈尔滨校区简单利用File类和递归显示指定文件夹中指定扩....
本帖最后由 rockybull 于 2015-12-17 20:29 编辑
简单利用File类和递归显示指定文件夹中指定扩展名的文件的路径。
递归就是方法自己调用自己。这个程序可以修改成固定的路径(如整个硬盘C、D、E盘),和多个扩展名(用||或连接)。
这个程序用到了File类中的方法,exists()判断路径是否存在。isFile()是否为文件。isDirectory()是否为文件夹。
listFiles()返回指定路径下的所有文件和文件夹的路径存在File[]数组中。
getName()返回路径文件名字符串。
String中的方法:
endsWith()是否以指定字符串结尾。
代码:
import java.io.File; //导入File和Scanner类
import java.util.Scanner;
public class T6 { //定义一个类
public static void main(String[] args) { //main方法
File f=getDir(); //调用getDir()方法获取路径。
print(f); 调用print()输出指定扩展名的文件的路径
System.out.println("over");
}
public static void print(File f) {
File[] f1 = f.listFiles(); //获取指定文件夹下的文件和文件夹的路径存在File数组。
if(f1==null){ //判断f1数组是否为空,如果为空跳出方法,避免空指针异常。
return;
}
for (File file : f1) { //增强for遍历数组,如果是以.mp3结尾的文件就输出该文件的路径。
if(file.isFile() && file.getName().endsWith(".mp3"))
System.out.println(file);
else if(file.isDirectory()) //如果是文件夹,就用递归思想自己调用自己,继续遍历这个文件夹的内容。
print(file);
}
}
public static File getDir() { //获取用户输入的合法文件夹路径File
Scanner sc=new Scanner(System.in);
System.out.println("请输入文件夹路径");
while(true) { //判断用户输入的路径是否是文件夹。
String s=sc.nextLine();
File f=new File(s);
if(!f.exists())
System.out.println("你输入的不是路径,请重新输入");
else if(f.isFile())
System.out.println("你输入的是文件路径,请重新输入");
else
return f;
}
}
}
作者: Hansion 时间: 2015-12-16 23:04
很不错啊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |