版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/axman/article/details/88884062
老婆的奥迪A6 avant,从我的itunes从把曲库COPY到SD卡,插到媒体播放器后,查看每个专辑中歌曲都是乱序的,想了很多方法都不能解决,最后想到,是不是根据文件创建时间排序的?
于是把整个曲库先COPY到电脑中,格式化SD卡,写了一段程度,按名称排序后吴顺序写入,这样时间和名称排序就对应上了。
package com.company;
import java.io.File;
import java.nio.file.Files;
import java.util.Arrays;
import java.util.Comparator;
public class Main {
public static void main(String[] args) throws Exception{
File rootdir = new File("/Users/axman/DeskTop/music"); //曲库目录
String distroot = "/Volumes/Ercui-SD/"; //SD卡
File[] subdirs = rootdir.listFiles(); //歌手目录
Arrays.sort(subdirs, new Comparator<File>() {
@Override
public int compare(File o1, File o2) {
return o1.getName().compareTo(o2.getName());
}
});
for (File sub : subdirs) {
if (sub.isDirectory()) {
File[] sets = sub.listFiles(); //专辑目录
Arrays.sort(sets, new Comparator<File>() {
@Override
public int compare(File o1, File o2) {
return o1.getName().compareTo(o2.getName());
}
});
for (File set : sets) {
if (set.isDirectory()) {
File distdir = new File(distroot + sub.getName() + "/" + set.getName());
System.out.println(distdir.getPath());
distdir.mkdirs(); //在SD卡上创建歌手目录
File[] musices = set.listFiles();
Arrays.sort(musices, new Comparator<File>() {
@Override
public int compare(File o1, File o2) {
return o1.getName().compareTo(o2.getName());
}
});
for (File music : musices) {
//Copy file to dist\
File distfile = new File(distdir, music.getName());
Files.copy(music.toPath(),distfile.toPath()); //文件COPY到SD卡上
Thread.sleep(1); //防止同一毫秒COPY两个文件
}
}
}
}
}
}
}
然后把SD卡重新插到车上,重新打开,哈哈,一切如愿以偿。