A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

开始碰到这个题目,肯定会觉得一点问题都没有,遇到目录只要用一个递归就好了,
但是忽略了一个问题,那就是文件可读不可读的问题。
有些系统文件是不可操作的,这个时候我们就要进行判断了,
那怎么判断呢?在文件夹(或整个D盘)上利用listFiles()方法获取文件数组之后,判断数组是否为空就可以解决这个问题。
  1. package 获取D盘下面的所有某种后缀名的文件并把名字存入一个文件中;

  2. import java.io.BufferedWriter;
  3. import java.io.File;
  4. import java.io.FileWriter;
  5. import java.io.IOException;

  6. public class Demo {
  7.         public static void main(String[] args) throws IOException {
  8.                 File file = new File("D:\\");
  9.                 copy(file);
  10.         }
  11.         public static void copy(File file) throws IOException{
  12.                 File[] arr = file.listFiles();
  13.                 if (arr==null) {
  14.                         return;//如果文件为空,说明这个文件着的为空或者处于不可读状态
  15.                 }
  16.                
  17.                 BufferedWriter br = new BufferedWriter(new FileWriter("F:\\copy.txt",true));
  18.                
  19.                 for (File f : arr) {
  20.                         if (f.isFile()&&f.getName().endsWith(".java")) {//这里可以修改为你想知道的任意名字,方便大家查询
  21.                                 br.write(f.getAbsolutePath());//获取全部路径
  22.                                 br.newLine();
  23.                         }
  24.                         else if (f.isDirectory()) {
  25.                                 copy(f);
  26.                         }
  27.                 }
  28.                 br.close();
  29.         }
  30. }
复制代码

评分

参与人数 1黑马币 +10 收起 理由
zimi626 + 10 很给力!

查看全部评分

3 个回复

倒序浏览
很好玩也很简单的一个代码,运行时间大概10来秒左右,可以获取你想获取的任意后缀名的文件哦。。
:victory::victory::victory:
回复 使用道具 举报
兄弟,整个工具类出来啊,各种复制。。。多爽!
回复 使用道具 举报
zimi626 发表于 2015-7-24 13:02
兄弟,整个工具类出来啊,各种复制。。。多爽!

:shutup::shutup::shutup::shutup:
这个一样的啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马