java实现扫描硬盘下所有以.avi结尾的文件并保存到txt文件

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class ScannerDiskVideo {
public static void main(String[] args) throws IOException {
//long startTime = System.currentTimeMillis();
// 存放文件的数组
List<String> ls = new ArrayList<String>();
// 所有文件盘符
File[] fs = File.listRoots();
for (File file : fs) {
checkFiles(ls, file);
}
// 存放到某个file文件中
String file = "D:/小电影目录汇总.txt";
File txtFile = new File(file);
FileOutputStream fos = new FileOutputStream(file);
//文件不存在就创建该txt文件
if(!txtFile.exists()){
txtFile.createNewFile();
}
for (int i = 0; i < ls.size(); i++) {
//实现换行效果,每笔记录后面添加\r\n 实现换行
String lsStr = ls.get(i).toString()+"\r\n";
fos.write(lsStr.getBytes());
}
fos.close();
//打印执行花费时间
//System.out.println(System.currentTimeMillis() - startTime);
}


/**
* 如果是目录就递归扫描目录下的文件 不是目录就根据后缀判断文件,并添加到List
*/
public static void checkFiles(List<String> ls, File f) {
if (f.isDirectory()) {
/**
* File[] listFiles() 返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
* 1.如果是目录,就调用当前,还是目录继续调用 2.不是目录将文件名添加到list中
*/
File[] fs = f.listFiles();
if (fs != null) {
for (int i = 0; i < fs.length; i++) {
checkFiles(ls, fs[i]);
}
}
}
if (f.getName().endsWith(".avi")) {
System.out.println(f.getPath());
ls.add(f.getPath());
}
}
}
阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页