您的位置:首页 > 编程语言 > Java开发

java实现批量拷贝音乐文件

2013-07-12 17:53 351 查看
一般在利用播放器批量下载歌曲之后,想把刚刚下的歌曲复制到手机里面,但是一个一个筛选刚刚下的歌又太费事,所以干脆动手码一下,以后就省事了。

代码功能:将当天下载的歌曲复制到目标目录里面,如果有歌词的话,也会将歌词lrc文件一块复制过去。

package moveMusic;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.channels.FileChannel;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Scanner;

public class MoveMusic
{
static final GregorianCalendar curTime = new GregorianCalendar();
static final long curDayOfYear = curTime.get(curTime.DAY_OF_YEAR);
static int musicNum = 0;
static int lrcNum = 0;

public boolean copy(String src, String tar)
{
FileInputStream fis = null;
FileOutputStream fos = null;
FileChannel in = null;
FileChannel out = null;
try
{
fis = new FileInputStream(src);
fos = new FileOutputStream(tar);
in = fis.getChannel();
out = fos.getChannel();
in.transferTo(0, in.size(), out);
in.close();
out.close();
fis.close();
fos.close();
}
catch(Exception e)
{
e.printStackTrace();
return false;
}
return true;
}

public void move(File from, File to)
{
File musicDir = from;
File[] musicFiles = musicDir.listFiles();
for(int i = 0; i < musicFiles.length; ++i)
{
File file = musicFiles[i];
GregorianCalendar fileTime = new GregorianCalendar();
fileTime.setTimeInMillis(file.lastModified());
if( fileTime.get(fileTime.DAY_OF_YEAR) == curDayOfYear )
{
if( file.isDirectory() )
this.move(file, to);
else
{
String target = to + File.separator + file.getName();
if( this.copy(file.toString(), target) )
System.out.println(file.getName() + " has been copied!");

if( file.getName().endsWith("lrc") )
++lrcNum;
else ++musicNum;
}
}
}

}

public static void main(String[] args)
{
// TODO Auto-generated method stub
//new MoveMusic().move("F:/DownedMusic", "J:/Music");
if( args.length < 2)
{
System.out.println("error parameters!");
System.out.println("example: java -jar moveMusic.jar sourceDirecory targetDirectory");
return ;
}
File sourceDirectory = new File(args[0]);
File targetDirectory = new File(args[1]);
if( !sourceDirectory.exists() )
{
System.out.println(sourceDirectory + " doesn't exist!");
return ;
}
if( !targetDirectory.exists() )
{
System.out.println(targetDirectory + "doesn't exist!");
System.out.println("do you want to creat it?(Y/N)");
Scanner scanner = new Scanner(System.in);
String content = scanner.nextLine();
if( content.matches("^[yY].*") )
{
targetDirectory.mkdirs();
}
else
{
System.out.println("exit");
return ;
}
}
new MoveMusic().move(sourceDirectory, targetDirectory);
System.out.println(musicNum + " music files have been copied!");
System.out.println(lrcNum + " lrc files have been copied!");
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 文件拷贝