A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© z443863517 中级黑马   /  2016-10-15 21:30  /  1354 人查看  /  13 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

题目三:把指定目录下(包含子目录)的所有图片,复制到另一个指定目录下

13 个回复

倒序浏览
一脸懵逼的进来,一脸懵逼的离开
回复 使用道具 举报
是用命令行指令吧,这也要考?
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
这不是io的题吗,命令行?不至于吧
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
哦啊啊 发表于 2016-10-16 09:36
这不是io的题吗,命令行?不至于吧

就是io的题目呀
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
这个感觉得先知道图片的格式有哪些,然后按照后缀名进行io复制
回复 使用道具 举报
barny 中级黑马 2016-10-16 12:04:30
7#
这个很简单啊,递归搞定,做了很多类似
回复 使用道具 举报
楼顶正解,递归和IO结合,,,,判断是文件就IO复制,是文件夹就继续掉用自己
回复 使用道具 举报
多级文件夹复制,加个判断是图片就可以了吧?递归
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
还没学11111
回复 使用道具 举报
递归获得所有图片,然后复制到目的文件夹中
回复 使用道具 举报
java基础班课程有案例的一模一样 你别说你没看到
回复 使用道具 举报
下面的代码应该可以

[Java] 纯文本查看 复制代码
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class Test3 {
	String imageReg = "^[a-zA-Z0-9_]+(\\.jpeg|\\.gif|\\.png|\\.bmp|\\.tiff|\\.psd|\\.svg|\\.jpg)$";
	public static void main(String[] args) {
		Test3 test = new Test3();
		test.copyimage("d://aaa");
	}
	
	
	public void copyimage(String path) {
		File srcFile = new File(path);
		String[] file = srcFile.list();
		for (int i = 0; i < file.length; i++) {
			File temp = new File(path + "/" + file[i]);
			System.out.println(path + "/" + file[i]);
			if (temp.isFile()) {
				if (temp.getName().matches(imageReg))				{
					String result = fileCopy(path + "/" + file[i], "D://a_cope");
					System.out.println(result);
				}
			}
			else
			{
				if (temp.isDirectory()) {
					copyimage(path + "/" + file[i]);
					System.out.println("我又执行一遍");
				}
			}
		}
	}

	public static String fileCopy(String srcPath, String desPath) {
		String result = "";
		File old = new File(srcPath);
		File newImage = new File(desPath);
		newImage.mkdirs();
		FileInputStream fis = null;
		FileOutputStream fos = null;
		try {
			if (!old.exists()) {
				result = "the file is not exists";
				return result;
			} else {
				fis = new FileInputStream(old);
				if (!newImage.exists()) {
					// newImage.mkdir();
					newImage.createNewFile();
				}
				fos = new FileOutputStream(newImage + "/" + old.getName());
				byte[] temp = new byte[1000];
				int size = fis.read(temp);
				while (size != -1) {
					fos.write(temp);
					size = fis.read(temp);
				}
				result = "the File Copy is success!";
				return result;
			}
		} catch (FileNotFoundException fileNot) {
			result = "the File Copy is Failed!";
			fileNot.printStackTrace();
			return result;
		} catch (IOException e) {
			e.printStackTrace();
			result = "the File Copy is Failed!";
			return result;
		} finally {
			try {
				fis.close();
				fos.close();
			} catch (Exception ex) {
			}
		}
	}
	
}
回复 使用道具 举报
难道是传说中的命令行?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马