精华内容
下载资源
问答
  • //将源文件中的Java文件存入到目的文件夹中 writeTofile(src,fileName.getParentFile(), des, fileName); } } //将源文件中的Java文件的名字存入到集合中 public static void fileTolist(File file,List...
    public static void main(String[] args) throws Exception{
            	//定义集合存储Java文件的名字
                    ArrayList<File> al = new ArrayList<File>();
                  //源文件路径
                    File src = new File("d:\\1");
                  //目的文件路径
                    File des = new File("d:\\2");
                    if(des.exists())	
                    	myDel(des);                           
                    des.mkdirs();
                  //将源文件中的Java文件的名字存入到集合中
                    fileToList(src,al); 
                    
                  //高级for循环遍历集合中Java文件的名字
                    for(File fileName : al){ 
                    	//将源文件中的Java文件存入到目的文件夹中
                        writeTofile(src,fileName.getParentFile(), des, fileName);            
                    }
            }
            
            
            //将源文件中的Java文件的名字存入到集合中
            public static void fileTolist(File file,List<File> list){
            	//获取源文件夹中的文件
            	File[] files = file.listFiles();              
                  //遍历文件并将文件的Java文件的名字存入到集合中
        		for(File f : files)
        		{
        			if(f.isDirectory()){
        				System.out.println("dir "+file.getName());
        				fileTolist(f,list);	//递归调用本身
        			}
        			else
        			{
        				System.out.println("file "+file.getName());
        				if(file.getName().endsWith(".java"))
        					list.add(f.getAbsoluteFile());
        			}
        		}
            }
        	public static void fileToList(File dir,List<File> list)
        	{
        		File[] files = dir.listFiles();
    
        		for(File file : files)
        		{
        			if(file.isDirectory()){
    //    				System.out.println("dir "+file.getName());
        				fileToList(file,list);	//递归调用本身
        			}
        			else
        			{
    //    				System.out.println("file "+file.getName());
        				if(file.getName().endsWith(".java"))
        					list.add(file);
        			}
        		}
        	}
            
            public static void myDel(File f){
            	File[] file = f.listFiles();
            	for(File fl:file){
                	if(fl.isDirectory()){
                		myDel(fl);
                	}	
                	fl.delete();
            	}
            	f.delete();
    
            }
            //将源文件中的Java文件存入到目的文件夹中
            public static void writeTofile(File src,File srcAll,File des, File fileName)throws Exception{
    	            String s=src.getAbsolutePath();
    	            String sAll = srcAll.getAbsolutePath();
    	            String str=new String(sAll.toCharArray(),s.length(),sAll.length()-s.length());
    	            String fileNameToString  =fileName.getName().replace(".java", ".txt");
                    //定义带缓冲的读对象
                    BufferedReader bfr = new BufferedReader(new FileReader(new File(srcAll, fileName.getName())));
                    File newFile = new File(des.getAbsolutePath()+str);
                    if(!newFile.exists())
                    	newFile.mkdirs();
                    System.out.println(newFile);
                    //定义写对象
                    BufferedWriter bfw = new BufferedWriter(new FileWriter(new File(newFile,fileNameToString)));
                    //单行内容临时存放处
                    String line = null;
                    //单行读写
                    while((line=bfr.readLine())!=null){
                            bfw.write(line);
                            bfw.newLine();
                            bfw.flush();
                    }
                    //关闭读写对象                
                    bfw.close();
                    bfr.close();
            }
    

    展开全文
  • Java实现文件夹复制

    千次阅读 2018-09-19 20:09:06
    复制一个文件夹时就不同了。最主要的难点在于不知道文件的结构。 实现思路: 1.遍历目标文件下的所有子文件和目录。 2.遍历所有子文件判断是目录还是文件,如果是目录的话先创建该目录,然后再递归进入该目录...

    Java复制当个文件很简答,我们直接通过io操作即可。但复制一个文件夹时就不同了。最主要的难点在于不知道文件的结构。

    实现思路:

    1.遍历目标文件下的所有子文件和目录。

    2.遍历所有子文件判断是目录还是文件,如果是目录的话先创建该目录,然后再递归进入该目录遍历,反之则复制文件。

     

    经过测试复制10G的内容大约要9分钟的样子,进一步改进的话则考虑缓冲流,减少写入的操作。

    package test02;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    /**
     * 文件复制
     * @author lanbing
     * @date 2018年8月29日
     *
     */
    public class DirClone {
    	
    	//源路径
    	public static String sourse = "C:\\Users\\Administrator\\Desktop\\中软每日一讲";
    	//目标路径
    	public static String target = "C:\\Users\\Administrator\\Desktop\\js2";
    
    	/**
    	 * 主函数
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		long startTime = System.currentTimeMillis();
    		Clone(sourse);
    		long endTime = System.currentTimeMillis();
    		System.out.println("总共用时:"+(endTime-startTime));
    	}
    
    	/**
    	 * 遍历文件夹并复制
    	 * @param sourse
    	 * @param target
    	 */
    	public static void Clone(String url){
    		//获取目录下所有文件
    		File f = new File(url);
    		File[] allf = f.listFiles();
    		
    		//遍历所有文件
    		for(File fi:allf) {
    			try {
    				//拼接目标位置
    				String URL = target+fi.getAbsolutePath().substring(sourse.length());
    
    				//创建目录或文件
    				if(fi.isDirectory()) {
    					Createflies(URL);
    				}else {
    					fileInputOutput(fi.getAbsolutePath(),URL);
    				}
    
    				//递归调用
    				if(fi.isDirectory()) {
    					Clone(fi.getAbsolutePath());
    				}
    
    			}catch (Exception e) {
    				System.out.println("error");
    			}
    		}
    	}
    
    	/**
    	 * 复制文件
    	 * @param sourse
    	 * @param target
    	 */
    	public static void fileInputOutput(String sourse,String target) {
    		try {
    			File s = new File(sourse);
    			File t = new File(target);
    			
    			FileInputStream fin = new FileInputStream(s);
    			FileOutputStream fout = new FileOutputStream(t);
    
    			byte[] a = new byte[1024*1024*4];	
    			int b = -1;
    			
    			//边读边写
    			while((b = fin.read(a))!=-1) {
    				fout.write(a,0,b);
    			}
    
    			fout.close();
    			fin.close();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
    
    	/**
    	 * 创建目录
    	 * @param name
    	 * @return
    	 */
    	public static boolean Createflies(String name) {
    		boolean flag=false;
    		File file=new File(name);
    		//创建目录
    		if(file.mkdir() == true){
    			System.out.println("文件夹创建成功!");
    			flag=true;
    		}else {
    			System.out.println("文件夹创建失败!");
    			flag=false;
    			
    		}
    		
    		return flag;
    	}
    }
    
    
    
    

     

    展开全文
  • 文件夹复制(面试题,有一定的难度) package com.fudao.digui; import java.io.*; import static com.sun.deploy.cache.Cache.copyFile; /*目标:复制文件夹(面试题 拓展) * 源文件:D:/*/ public class ...

    文件夹的复制(面试题,有一定的难度)

    package com.fudao.digui;
    
    import java.io.*;
    
    import static com.sun.deploy.cache.Cache.copyFile;
    
    /*目标:复制文件夹(面试题 拓展)
     * 源文件:D:/*/
    public class CopyFile {
        public static void main(String[] args) {
            copyDir(new File("E:/fudao/JAVA"), new File("E:/fudao/dome"));
        }
    
        /**
         * 复制文件夹
         *
         * @param srcDir
         * @param destDir
         */
        public static void copyDir(File srcDir, File destDir) {
            //1.判断是否存在原路径,是否是文件夹
            if (srcDir.exists()&&srcDir.isDirectory()) {
                //2.创建目标文件夹
                destDir.mkdirs();
                //3.提取源文件夹的一级文件对象
                File[] files = srcDir.listFiles();
                //4.判断是否存在一级文件对象
                if (files!=null&&files.length>0) {
                    //5.遍历一级文件对象
                    for (File file : files) {
                        //6。判断是否是文件
                        if (file.isFile()) {
                            //直接复制到当前路径
                            copyfile(file,new File(destDir,file.getName()));
                        }else {
                            //file是文件夹了,作为新的文件夹
                            //目标文件夹:上一个文件夹destDir+新文件夹名称
                            copyDir(file,new File(destDir,file.getName()));
    
                        }
                    }
                }
            }
    
        }
    
        private static void copyfile(File file, File file1) {
            try (
                //创建一个低级的字节输入流与源文件相通
                InputStream is = new FileInputStream(file);
                 BufferedInputStream bis =  new BufferedInputStream(is);
    			//创建一个低级的字节输出流与目标文件相通
                 OutputStream os =  new FileOutputStream(file1);
                 BufferedOutputStream bos = new BufferedOutputStream(os);
    
            ){
                //创建一个字节数组来存储字节
                byte[] bytes = new byte[1024];
                //定义一个变量存储每次读取的字节数量
                int len;
                if ((len = bis.read())!=-1) {
                    bos.write(bytes,0,len);
                }
    
            }catch (Exception e){
                e.printStackTrace();
            }
        }
    }
    
    展开全文
  • 实现深度复制

    2017-11-09 10:01:07
    事实上,ES5新增的JSON对象提供的两个方法也可以实现深度复制,分别是JSON.stringify()和JSON.parse();前者用来将对象转成字符串,后者则把字符串转换成对象。下面我们使用该方法来实现一个深度复制的函数: ...

    事实上,ES5新增的JSON对象提供的两个方法也可以实现深度复制,分别是JSON.stringify()和JSON.parse();前者用来将对象转成字符串,后者则把字符串转换成对象。下面我们使用该方法来实现一个深度复制的函数:
    function extendDeep(parent, child) {
    var i,
    proxy;
    proxy = JSON.stringify(parent); //把parent对象转换成字符串
    proxy = JSON.parse(proxy) //把字符串转换成对象,这是parent的一个副本
    child = child || {};
    for(i in proxy) {
    if(proxy.hasOwnProperty(i)) {
    child[i] = proxy[i];
    }
    }
    proxy = null; //因为proxy是中间对象,可以将它回收掉
    return child;
    }
    下面是测试例子:
    var dad = {
    counts: [1, 2, 3],
    reads: {paper: true}
    };
    var kid = extendDeep(dad);
    //修改kid的counts属性和reads属性
    kid.counts.push(4);
    kid.reads.paper = false;
    console.log(kid.counts); //[1, 2, 3, 4]
    console.log(kid.reads.paper); //false
    console.log(dad.counts); //[1, 2, 3]
    console.log(dad.reads.paper); //true

    展开全文
  • * 如需测试,请先把”第8题测试“文件夹中的文件复制到D盘根目录 */ public static void main(String[] args) { File file = new File("D:\\test2.txt"); if (!file.exists()) { try { file....
  • 只要复制"lockdir.exe"到该文件夹中,打开运行即可解开。如果找不到lockdir.exe这个文件,可以从我们网站上重新下载 3. 我能查看加密文件夹的属性,文件夹大小,文件夹数量吗? 不能。加密后,软件将自动隐藏文件夹...
  • 为MATLAB添加深度学习工具箱

    万次阅读 多人点赞 2016-05-15 21:25:33
    1、 下载后解压,把解压后的文件夹复制到MATLAB工具箱文件夹下的位置,比如我的是:D:\MATLAB2012b\toolbox; 2、 打开MATLAB界面,在命令窗口中添加深度学习工具箱文件夹的位置:addpath(genpath('D:\MAT
  • Spelunky 2的覆盖层,可帮助您进行修改,探索游戏的深度以及使用诸如生成任意物品,变形到关卡以及由Spelunky Community Discord的凉爽人员进行传送的工具进行练习。 请阅读 在不和中抱怨他们之前。 与...兼容 。...
  • Kafka深度解析

    千次阅读 热门讨论 2020-05-09 11:05:19
    本文转发自技术世界,原文链接 http://www.jasongj.com/2015/01/02/Kafka深度解析 背景介绍 Kafka简介  Kafka是一种分布式的,基于发布/订阅的消息系统。主要设计目标如下: 以时间复杂度为O(1)的方式提供...
  • Swift - 文件,文件夹操作大全

    千次阅读 2018-04-26 18:55:11
    (本文代码已升级至Swift3)iOS开发经常会遇到读文件,写文件等,对文件和文件夹的操作,这时就可以使用FileManager,FileHandle等类来实现。下面总结了各种常用的操作:1,遍历一个目录下的所有文件假设用户文档下...
  • Windows XP下含有“.”号的特殊文件夹深度测试  要想在Windows下要建立一个让他人无法访问的文件夹,大家一般都采用加密软件来完成这个任务。其实,在Windows XP下无需额外的软件,利用系统自身的特性就可以建立...
  • 添加深度学习工具箱

    千次阅读 2017-11-30 11:01:09
    为MATLAB添加深度学习工具箱 ...1、 下载后解压,把解压后的文件夹复制到MATLAB工具箱文件夹下的位置,比如我的是:D:\MATLAB2012b\toolbox; 2、 打开MATLAB界面,在命令窗口中添加深度学习工具箱
  • 运行环境:MATLAB R2014a,Windows 7 64位,GPU GeForce 980Ti,CUDA v7.5,cuDnn...1. 下载MatConvNet,解压到任意文件夹中。 2. 将MATLAB的工作路径定位到'MatConvNet'文件夹。 3. 在MATLAB命令窗中添加路径:add
  • Windows XP下含有“.”号的特殊文件夹深度测试  要想在Windows下要建立一个让他人无法访问的文件夹,大家一般都采用加密软件来完成这个任务。其实,在Windows XP下无需额外的软件,利用系统自身的特性就可以建立...
  • 配置深度学习GPU环境

    2020-12-10 14:24:51
    安装CUDA ... 根据自己 版本下载 安装cuDNN ... 如果这个压缩包不是.tgz格式的,把这个...解压当前的.tgz格式的软件包到系统中的任意路径,解压后的文件夹名为cuda,文件夹中包含三个文件夹:一个为include,另一个为li
  • Apache NiFi深度扩展

    千次阅读 2019-03-20 16:36:47
    但请记住,由于Provenance不会复制内容回购中的内容,只是将FlowFile的指针复制到内容,因此可以在删除引用它的出处事件之前删除内容。这意味着用户将无法再查看内容或稍后重播FlowFile。但是,用户仍然可以查看...
  • 深度学习入门之PyTorch

    2020-11-06 21:39:13
    文章目录深度学习入门之PyTorch第一章 深度学习介绍1.1 人工智能1.2 数据挖掘,机器学习和深度学习1.2.1 数据挖掘1.2.2 机器学习1.2.3 深度学习第二章 深度学习框架2.1 深度学习框架介绍2.2 PyTorch介绍2.2.1 什么是...
  • 发现MATLAB功能越来越强大。现在也有了深度学习的toolbox。...1、 下载后解压,把解压后的文件夹复制到MATLAB工具箱文件夹下的位置,比如我的是:D:\Program Files\MATLAB\R2015b\toolbox; 2、 打开MATL...
  • 说说Windows一键还原的备份文件夹
  • 你将学会用不到100行Python / TensorFlow代码来解决深度学习问题。 你会学到什么 什么是神经网络和如何训练它 如何使用TensorFlow构建基本的1层神经网络 如何添加更多的神经网络层数 训练技巧和窍门:过度拟合...
  • Mnist深度学习入门

    2019-11-15 20:29:17
    MNIST深度学习入门mnist是什么?mnist数据集下载数据集处理将mnist数据集保存为图片图像标签的one-hot表示MNIST源码展示代码主要函数解析总结 mnist是什么? MNIST是一个手写数字图像的数据集,每幅图像都由一个整数...
  • 创建文件夹 假如我们要创建这样一个文件夹‘a/d/c/d/e’ 同步创建文件夹 let fs = require('fs'); function makep(dir) { let paths = dir.split('/'); for(let i =1;i&lt;paths.length;i++){ let newPath =...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,477
精华内容 3,390
关键字:

任意深度文件夹的复制