zoukankan      html  css  js  c++  java
  • java 把一个文件夹里图片复制到另一个文件夹里

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.util.Calendar;
    
    public class SendServer {
    
        private int num = 0;
        
        public void process() {
            
            Calendar calendar = Calendar.getInstance();
            String dir = calendar.get(Calendar.YEAR) + "" + getTimeString(calendar.get(Calendar.MONTH) + "");
    
            String oldPath = "/img2" + dir;
            String newPath = "/img5" + dir;
            
            try {
    
                while(true){
                    System.out.println("复制 " + oldPath + " 目录开始");
                    long t1 = System.currentTimeMillis();
                    
                    num = 0;
                    copyFolder(oldPath, newPath);
                    
                    long t2 = System.currentTimeMillis();
                    System.out.println("复制目录结束,用时:" + (t2-t1) + "ms,共复制:" + num + "文件");
                }
    
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }
    
        public void copyFolder(String oldPath, String newPath) {
            
            try {
                File mFile = new File(newPath);
                if(!mFile .exists()){
                    (new File(newPath)).mkdirs(); // 如果文件夹不存在 则建立新文件夹
                }
                File a = new File(oldPath);
                String[] file = a.list();
                File temp = null;
                for (int i = 0; i < file.length; i++) {
                    if (oldPath.endsWith(File.separator)) {
                        temp = new File(oldPath + file[i]);
                    } else {
                        temp = new File(oldPath + File.separator + file[i]);
                    }
    
                    if (temp.isFile()) {
                        String fileName = newPath + "/" + (temp.getName()).toString();
                        File testFile = new File(fileName);
                        if (!testFile.exists()) {
                            FileInputStream input = new FileInputStream(temp);
                            FileOutputStream output = new FileOutputStream(fileName);
                            byte[] b = new byte[1024 * 5];
                            int len;
                            while ((len = input.read(b)) != -1) {
                                output.write(b, 0, len);
                            }
                            output.flush();
                            output.close();
                            input.close();
                            num++;
                        }
                    }
                    if (temp.isDirectory()) {// 如果是子文件夹
                        copyFolder(oldPath + "/" + file[i], newPath + "/" + file[i]);
                    }
                }
            } catch (Exception e) {
                System.out.println("复制整个文件夹内容操作出错");
                e.printStackTrace();
    
            }
        }
        
        private String getTimeString(String time){
            if(time.length()<2){
                return "0" + time;
            }
            else{
                return time;
            }
        }
    }

     -----------------------2017/3/22---------------------------------------

    获得文件夹下所有文件名

        public static class TreeNode {
            /**节点名称**/
            private String text; 
            /**节点路径**/
            private String fileName; 
             /**子节点**/
            private List<TreeNode> children = new ArrayList<TreeNode>();
        }
        
        public static TreeNode readfile(TreeNode tn){
            try {
    
                File file = new File(tn.fileName);
                tn.text = file.getName();
                if (!file.isDirectory()) {
                    //System.out.println(file.getName());
                    
                } else if (file.isDirectory()) {
                    String[] filelist = file.list();
                    for (int i = 0; i < filelist.length; i++) {
                        File readfile = new File(tn.fileName + "\" + filelist[i]);
                        TreeNode tn1 = new TreeNode();
                        tn1.text = readfile.getName();
                        tn1.fileName = tn.fileName + "\" + filelist[i];
                        if (!readfile.isDirectory()) {
                            tn.children.add(tn1);
                        } else if (readfile.isDirectory()) {
                            tn.children.add(readfile(tn1));
                        }
                    }
                }
    
            } catch (Exception e) {
                System.out.println("readfile()   Exception:" + e.getMessage());
            }
            return tn;
        }
        
        public static void main(String[] args){
            TreeNode tn = new TreeNode();
            tn.fileName = "C:\Users\42955\Desktop\文件夹\软件";
            readfile(tn);
            System.out.println(tn);
            System.out.println(tn.text);
        }
  • 相关阅读:
    TOMCAT原理详解及请求过程
    详解Tomcat配置及使用
    Android网络编程(三)Volley使用方法全解析
    Android开发文档翻译之-Services
    竞赛中经常使用的C++写法
    Android消息机制
    boost的内存管理
    二叉树遍历技巧
    【 D3.js 视频系列 】 飞速入门
    [Spring实战系列](19)Servlet不同版本号之间的差别
  • 原文地址:https://www.cnblogs.com/margin-gu/p/5887459.html
Copyright © 2011-2022 走看看