package server;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
public class MusicManager {
private static List<String> musics = new ArrayList<String>();
public static void main(String[] args) {
try {
// 指定遍历路径
File file = new File("D:/");
// 记录遍历开始时间
long start = System.currentTimeMillis();
// 进行遍历
getAllMusic(file);
// 输出遍历用时
System.out.println("用时:" + (System.currentTimeMillis() - start)
+ " 毫秒");
// 显示遍历结果
System.out.println("遍历结果:" + musics.size() + " 个文件");
for (String path : musics) {
System.out.println("\t" + path);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private static void getAllMusic(File inputfile)
throws FileNotFoundException {
// 如果文件无效,进入else块抛异常
// 如果不想遍历隐藏文件,条件写成
// inputfile.exists() && !inputfile.isHidden()
if (inputfile.exists()) {
File[] files = inputfile.listFiles();
if (files != null) { // 如果是目录,则检查子文件
for (File file : files) {
if (file.isDirectory())
// 如果子文件是目录,则继续遍历。如果不想遍历隐藏目录,条件写成
// file.isDirectory() && !file.isHidden()
// 递归调用
getAllMusic(file);
else if (file.isFile()) {
// 如果子文件是标准文件,判断是否为音乐文件。如果不想遍历隐藏文件,条件写成
// file.isFile() && !file.isHidden()
String filename = file.getName().toLowerCase(
Locale.getDefault());
if (filename.endsWith(".mp3")
|| filename.endsWith(".wma"))
musics.add(file.getAbsolutePath());
} else
// else if (!file.exists())
System.out.println("分支终止于 " + file + " ,文件不存在!");
}
} else if (inputfile.isFile()) { // 如果是标准文件,判断是否为音乐文件
String filename = inputfile.getName().toLowerCase(
Locale.getDefault());
if (filename.endsWith(".mp3") || filename.endsWith(".wma"))
musics.add(inputfile.getAbsolutePath());
} else
System.out.println("分支终止于 " + inputfile + " ,拒绝访问!");
} else {
throw new FileNotFoundException("文件不存在!" + inputfile);
}
}
}
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课