java复制当前项目的文件夹到D盘

注意一,New一个File对象只会在内存产生一个对象,而不会产生文件,要创建文件需要调用createNewFile();

注意二,如果实在未创建的路径下,需要先创建父文件夹,常用file.getParentFile.mkdirs();


import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

/*
 * 统计当前项目所在的文件夹的文件数,文件夹数
 * 把该文件下的文件、文件夹移动到D盘
 */
public class FileTest {

	static int fileNum = 0;
	static int dirNum = 0;
	
	public static void main(String[] args) throws IOException {
		String dirName = "C:/Users/Administrator/workspace/skills";
		File dir = new File(dirName);
		CopyDir(dir);
		System.out.println("文件数:"+fileNum);
		System.out.println("文件夹数"+dirNum);
	}
	
	public static void CopyDir(File dir) throws IOException{
		File desDir = DoChange(dir);
		desDir.mkdirs();
		dirNum++;
		File list[] = dir.listFiles();
		for(int i=0; i<list.length; ++i){
			if(list[i].isDirectory()){
				CopyDir(list[i]);
			}
			else{
				CopyFile(list[i]);
			}
		}
	}
	
	public static void CopyFile(File file) throws IOException{
		File desFile = DoChange(file);
		desFile.createNewFile();
		fileNum++;
		InputStream is = null;
		OutputStream os = null;
		int temp = 0;
		byte[] src = new byte[(int)file.length()];
		try{
			is = new FileInputStream(file);
			os = new FileOutputStream(desFile);
			
			is.read(src);
			os.write(src);
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			if(is!=null){
				is.close();
			}
			if(os!=null){
				os.close();
			}
		}
		
	}
	
	public static File DoChange(File file){
		String fileName = file.getAbsolutePath();
		String desName = fileName.replaceFirst(fileName.substring(0,2),"d:");
		File desFile = new File(desName);
		
		return desFile;
	}

}

输出

文件数:23
文件夹数6

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值