一、需求
我要把C盘下面的所有图片都拿出来,放到一个新文件夹中.今天小编一身正气,看看有没有什么意外发现!!学会看看自己的盘,悄悄的哦!!!
二、代码展示(运行时间可能有点长)
import java.io.*;
public class ArrangementJPG {
//控制图片名字的位数
static int id;
public static void main(String[] args){
//目标文件
File target = new File("e:\\foto");
target.mkdirs();
//便利源文件
File dir = new File("c:\\");
kill(dir);
}
//便利c盘下的所有文件夹及文件 ---找到.jpg结尾图片
public static void kill(File tar){
File[] ds = tar.listFiles((x) -> x.isDirectory());
File[] js = tar.listFiles((x) -> x.isFile() && x.getName().toLowerCase().endsWith(".jpg"));
if(ds == null) return;
for(File d : ds){
kill(d);
}
for(File j : js){
File x = new File("e:\\foto",nextName());
copy(j,x);
}
}
//获得下一个文件名
private static String nextName(){
String name = String.valueOf(++id);
while(name.length() < 5){
name = "0" + name;
}
name += ".jpg";
return name;
}
//复制一个文件的
private static void copy(File src,File tar){
try(FileInputStream fis = new FileInputStream(src);FileOutputStream fos = new FileOutputStream(tar)){
byte[] data = new byte[65536];
int len;
while((len = fis.read(data))!=-1){
fos.write(data,0,len);
}
}catch(Exception e){
e.printStackTrace();
}
}
}
三、结果展示
四、总结
看来小编里面没有什么意外发现,不知道你们的呢!!小编刚刚装的系统,就有接近两千张,对你有用,赶紧点赞关注哦!!