java實現批量拷貝音樂文件

一般在利用播放器批量下載歌曲之後,想把剛剛下的歌曲複製到手機裏面,但是一個一個篩選剛剛下的歌又太費事,所以乾脆動手碼一下,以後就省事了。

代碼功能:將當天下載的歌曲複製到目標目錄裏面,如果有歌詞的話,也會將歌詞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!");
	}

}


發佈了76 篇原創文章 · 獲贊 4 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章