平时写代码怕电脑出问题,需要备份到U盘,每次都手动打开复制好麻烦,于是就用Java写了个文件拷贝的jar包,用批处理执行。
1、编写程序
程序执行的时候需要传入两个参数,分别是源路径和目的路径。这样便于拷贝不同的文件夹。
package cn.baicai.ioStream;
import java.io.*;
public class CopyFile {
static int nums=0;
public static void main(String[] args) throws Exception {
int len= args.length;
if (len!=2){
System.out.println("请输入原文件夹和目的文件夹,以空格分开");
}
else {
System.out.println("开始复制");
String src=args[0];
String des=args[1];
copyDirectory(src,des);
System.out.println("共复制了"+nums+"个文件,复制完毕");
}
}
public static void copyDirectory(String src,String des) throws Exception{
// 初始化源文件夹
File fileSrc=new File(src);
// 初始化目标文件夹
File fileDes=new File(des);
// 获得文件中的所有文件
File[] files=fileSrc.listFiles();
// 如果目标文件夹不存在,则创建
if (!fileDes.exists()){
fileDes.mkdirs();
}
// 遍历所有文件
for (File file :
files) {
// 如果是文件就复制
if (file.isFile()) {
copyFile(file.getAbsolutePath(),des+""+file.getName());
// 如果是文件夹就递归调用
}else if (file.isDirectory()){
copyDirectory(file.getAbsolutePath(),des+""+file.getName());
}
}
}
public static void copyFile(String src,String des) throws Exception{
BufferedInputStream bis=new BufferedInputStream(new FileInputStream(src));
BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream(des));
byte[] buffer=new byte[2048];
int len=0;
while ((len=bis.read(buffer))!=-1){
bos.write(buffer,0,len);
}
bos.close();
bis.close();
System.out.println(src+" 复制完毕");
nums+=1;
}
}
2、生成jar包。





3、编写脚本文件
后面跟的是源、目的文件夹。
@echo off
java -jar IOStream.jar C:UsersaiDesktop新建文件夹 C:UsersaiDesktop新建
pause
另存为bat,注意Windows默认编码不是utf-8,要切换成ANSI,这个会根据不同的国家更换,中国就是GBK编码。

4、运行bat程序
大功告成了

© 版权声明
文章版权归作者所有,未经允许请勿转载。如内容涉嫌侵权,请在本页底部进入<联系我们>进行举报投诉!
THE END





![[C++探索之旅] 第一部分第十一课:小练习,猜单词 - 鹿快](https://img.lukuai.com/blogimg/20251015/da217e2245754101b3d2ef80869e9de2.jpg)










暂无评论内容