这个代码哪里有错啊

qq_43464465 2019-08-01 01:18:10
package day8.Three;
import java.io.File;

public class three {
public static void main(String[] args) {
File file = new File("d:\\");
getAllFile(file);
}

public static void getAllFile(File file){
File[] files = file.listFiles(new FileFilterImpl());
for (File filename:files
) {
if (filename.isDirectory()){
System.out.println(filename);
getAllFile(filename);
}else {
System.out.println(filename);
}
}
}
}

package day8.Three;

import java.io.File;
import java.io.FileFilter;
public class FileFilterImpl implements FileFilter {
@Override
public boolean accept(File pathname) {
if (pathname.isDirectory()) {
return true;
}
return pathname.getName().toLowerCase().endsWith(".txt" );
}
}

...全文
71 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_43464465 2019-08-01
  • 打赏
  • 举报
回复
引用 3 楼 逝水流年风萧兮 的回复:
因为System Volume Information文件夹是无法访问的。所以 File[] files = file.listFiles(new FileFilterImpl());这后面要加一句判断。代码如下

public static void getAllFile(File file){
File[] files = file.listFiles(new FileFilterImpl());
if(files!=null){
for (File filename:files) {
if (filename.isDirectory()){
System.out.println(filename);
getAllFile(filename);
}else {
System.out.println(filename);
}
}
}
}

啊,好使了,谢谢啊
  • 打赏
  • 举报
回复
没啥问题,你报啥错
  • 打赏
  • 举报
回复
因为System Volume Information文件夹是无法访问的。所以 File[] files = file.listFiles(new FileFilterImpl());这后面要加一句判断。代码如下

public static void getAllFile(File file){
File[] files = file.listFiles(new FileFilterImpl());
if(files!=null){
for (File filename:files) {
if (filename.isDirectory()){
System.out.println(filename);
getAllFile(filename);
}else {
System.out.println(filename);
}
}
}
}

qq_43464465 2019-08-01
  • 打赏
  • 举报
回复
引用 1 楼 usecf 的回复:
没错误呀 你要什么结果

遍历某一个文件夹就好用,遍历整个d盘就不行
usecf 2019-08-01
  • 打赏
  • 举报
回复
没错误呀 你要什么结果

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧