File中list方法&listFiles方法
1.list方法
1.无参的方法list()
返回类型:字符串数组
功能:返回一个文件夹下的一级子目录和文件名,不带父级目录的名称
代码块:
File file1 = new File("D:\\0XYZ");
String [] str = file1.list();
List li = Arrays.asList(str);
System.out.println(li);
2.有参的方法list(FilenameFilter filter)
参数:过滤器FilenameFilter 接口类型,需要匿名或者对类实现
返回类型:字符串数组
功能:通过过滤器过滤该文件夹下的文件和文件夹
代码块:
返回文件夹下以.docx结尾的文件名的字符串数组
File file1 = new File("D:\\0XYZ");
File file = new File(".doc");
String [] str = file1.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return name.endsWith(".docx");
}
});
List li = Arrays.asList(str);
System.out.println(li);
2.listFiles方法
1.无参的方法listFiles()
返回类型:File数组
功能:返回一个File类型的数组,数组中存放的是此文件夹下的文件路径+文件名(包含父级目录的完整路径)
代码块:
File file1 = new File("D:\\0XYZ\\Computer");
File [] files = file1.listFiles();
List li = Arrays.asList(files);
System.out.println(li);
2.有参的方法listFiles(FilenameFilter filter)
参数:过滤器FilenameFilter 接口类型,需要匿名或者对类实现
返回类型:File类型数组
功能:通过过滤器过滤该文件夹下的文件和文件夹,返回文件夹+文件名的file类型
代码块:
返回文件夹下以.docx结尾的文件名的File类型数组
File file1 = new File("D:\\0XYZ");
File [] files = file1.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return name.endsWith(".docx");
}
});
List li = Arrays.asList(files);
System.out.println(li);
3.潜在问题
在使用有参数的方法时,File 相当于传入的文件夹的文件路径,name相当于文件下的所有文件名和文件夹的名称,在进行比较时,因为name是String,所以不能使用==,而使用equals方法,
实际案例:
获取文件夹下与 文件夹相同名称的文件夹名
正确的写法:
File file1 = new File("D:\\0XYZ");
String [] str = file1.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
System.out.println(dir.getName());
boolean b = dir.getName().equals(name);
return dir.getName().equals(name);
}
});
List li = Arrays.asList(str);
System.out.println(li);
错误的写法:
File file1 = new File("D:\\0XYZ");
String [] str = file1.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
System.out.println(dir.getName());
boolean b = dir.getName().equals(name);
return dir.getName()==name;
}
});
List li = Arrays.asList(str);
System.out.println(li);
本文深入解析Java中File类的list和listFiles方法的使用,包括无参与有参方法的功能、参数、返回类型及代码示例,同时指出使用FilenameFilter过滤特定文件的技巧,并强调了在比较文件名时应使用equals方法而非==的重要性。

264

被折叠的 条评论
为什么被折叠?



