您的位置:首页 > 其它

自己私用的一个简单程序

2014-01-16 20:31 387 查看
昨天用虾米音乐网上下了不少歌曲到本地打算传到手机中,下载完成后发现每首歌曲在客户端设置的下载路径中另外新建了个目录,

100首歌曲就有100个目录,复制起来相当麻烦,就写了个小程序,把所有的歌曲集中copy到另外一个目录中再一并拷贝到手机中

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.channels.FileChannel;
import java.util.LinkedList;
import java.util.List;

public class XMusicUtil {
private static List allLegalFilePath = new LinkedList();
private static final String LEGAL_SUFFIX_WORD = "mp3";

/**
* 获取源目录中所有MP3文件
*
* @param srcDirectory
*/
private static void getLegalFiles(File srcDirectory) {
File[] files = srcDirectory.listFiles();
for (File file : files) {
if (file.isDirectory()) {
getLegalFiles(file);
}else {
String filePath = file.getAbsolutePath();
if (filePath.endsWith(LEGAL_SUFFIX_WORD)) {
allLegalFilePath.add(filePath);
}
}
}
}
/**
* 将源目录中所有mp3文件拷贝到新目录中
* @param srcDirectory
* @param destDirectory
*/
public static void copyToDestDirectory(File srcDirectory, File destDirectory) {
if (isNotExist(srcDirectory) || srcDirectory.isFile()) {
System.out.println("源目录不存在!");
return;
}
if (!destDirectory.exists()) {
destDirectory.mkdirs();
}
getLegalFiles(srcDirectory);
System.out.println(allLegalFilePath.size());
FileChannel infc = null ;
FileChannel outfc = null;
try {
for (String srcFilePath : allLegalFilePath) {
infc = new FileInputStream(srcFilePath).getChannel();
String fileName = srcFilePath.substring(srcFilePath
.lastIndexOf(File.separator));
String destFilePath = destDirectory.getAbsolutePath()
+ fileName;
outfc=new FileOutputStream(destFilePath).getChannel();
infc.transferTo(0, infc.size(), outfc);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
closeFileChannel(infc);
closeFileChannel(outfc);
}
}

private static boolean isNotExist(File file) {
return file == null || !file.exists();
}

private static void closeFileChannel(FileChannel fc) {
try {
fc.close();
} catch (IOException e) {
e.printStackTrace();
}
}

public static void main(String[] args) {
File srcDirectory=new File("F:/MyMusic");
File destDirectory=new File("F:/XiaMiMusic");
XMusicUtil.copyToDestDirectory(srcDirectory, destDirectory);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐