摘要:今天在做图片标记,一个杂活,我从网盘里面把图片压缩包下载下来后,发现它的目录结构是这样的,需要把里面的每一个图片放到同一个文件夹里面去,方便上传与读取;因此实现了该方法,可做参考借鉴。
文件目录结构如下图所示:
一个文件夹里面有多个文件夹,可能会有几层这种类似的结构,需要把所有文件夹里面的文件全部复制出来,代码挺简单的,如下:
public static void digui(File files){
for (File f: files.listFiles()){
if(f.isDirectory()){//判断是否是文件夹,是就递归调用,不是就执行业务代码
digui(f);
System.out.println("目录名:"+f.getName());
}else {
try {
System.out.println("文件名"+f.getAbsolutePath());
FileInputStream fis = new FileInputStream(f.getAbsolutePath());
FileOutputStream fos = new
FileOutputStream("目标路径"+"\\"+f.getName());
byte[] b = new byte[1024];
int len = 0;
while((len = fis.read(b)) != -1){
fos.write(b,0,len);
}
fos.close();
fos.flush();
fis.close();
System.out.println("写入成功!");
}catch (Exception e){
e.printStackTrace();
}
}
}
}
public void diguiTest(){
digui(new File("源文件夹路径"));
}
这样就能成功将源文件夹里面的所有文件拷贝出来,不管它有几层嵌套;其实也可以直接根据文件的位置去获取,(我也写过~~),不过那样比较麻烦,需要去判断每一层是文件还是文件夹再去做相关操作。
有问题请留言。。。