import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.nio.file.FileVisitResult;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.SimpleFileVisitor;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map.Entry;
public class Main {
public static void main(String[] args) {
HashMap<String, File> mp3FileMap = readMp3Files();
for(Entry<String, File> entry : mp3FileMap.entrySet()) {
System.out.printf("音乐名称%s\n", entry.getKey());
System.out.printf("音乐文件路径%s", entry.getValue().getPath());
System.out.println();
}
}
public static HashMap<String, File> readMp3Files(){
File dir = new File("F:\\");
//保存查找到的MP3文件
ArrayList<File> mp3FileList = new ArrayList<File>();
try {
Files.walkFileTree(dir.toPath(), new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
//判断如果是mp3文件
if(file.toFile().getName().endsWith(".mp3")) {
//添加至集合
mp3FileList.add(file.toFile());
}
return FileVisitResult.CONTINUE;
}
//访问文件出错时,继续遍历
@Override
public FileVisitResult visitFileFailed(Path file, IOException exc) throws IOException {
return FileVisitResult.CONTINUE;
}
});
}catch (IOException e) {
e.printStackTrace();
}
//遍历File[]数组,重新保存至Map中
HashMap<String, File> fileMap = new HashMap<String, File>();
for(File f : mp3FileList) {
//获取文件名称(含后缀名)
String fileName = f.getName();
//计算key(不含后缀名的文件名称)
String key = fileName.substring(0, fileName.indexOf("."));
fileMap.put(key, f);
}
return fileMap;
}
}
06-17
952