拷贝目录

package HomeWork;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class WorkTest {

	    public static void main(String[] args)
	    {
	        //在当前目录下创建一个外层目录
	        File dir = new File("F:\\复制后的文件夹(4.20作业)");
	        dir.mkdir();  

	        //调用方法复制文件
	        getFileList("F:\\笔记\\第1周\\2.24", "F:\\复制后的文件夹(4.20作业)");
	    }
	    /**
	     * 执行复制操作
	     * @param fromFile 源目录
	     * @param endsFile 目标目录
	     */
    private static void getFileList(String fromFile, String endsFile)
    {
        File file = null;//先创建一个文件对象(被复制对象)
        File file1 = null; //被复制的文件
        FileInputStream fis = null;
        DataInputStream dis = null;  

        File file2 = null;  //作为复制后文件的暂时缓存
        FileOutputStream fos = null;
        DataOutputStream dos = null;
        try {
            file = new File(fromFile);//创建源文件对象
            File[] files = file.listFiles();//获得文件列表
            for (int i = 0; i < files.length; i++){
	            if (files[i].isDirectory()){ //判断是否为目录
	                File dir = new File(endsFile + "\\" + files[i].getName());  //创建目录
	                    dir.mkdir();  //如果是目录就创建
	                    //递归上一级目录
	                getFileList(fromFile + "\\" + files[i].getName(),
	                		endsFile + "\\" + files[i].getName());
	            }
	            else{
	                //创建源目录下的文件对象
	                    file1 = new File(files[i].toString());
	                    fis = new FileInputStream(file1);
	                    dis = new DataInputStream(fis);  

	                    //创建目标目录下的文件对象
	                file2 = new File(endsFile + "\\" + files[i].getName());
	                fos = new FileOutputStream(file2);
	                dos = new DataOutputStream(fos);
	                int len = 0;
	                while ((len = dis.read()) != -1){  

	                    //将源目录下的文件内容复制到目标目录下的文件中
	                    dos.write(len);
	                }
	           System.out.println(endsFile + "\\" + files[i].getName());//把复制后的文件名及路径打印在控制台上,方便观察
	            }
	        }
    }
    catch (IOException e){  

    	e.printStackTrace();
    }finally{
    if(fis != null){
    	try {
			fis.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
    }

    if(dis != null){
    	try {
			dis.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
    }
    }  

    }
}

  

时间: 2024-10-12 17:03:35

拷贝目录的相关文章

C#-拷贝目录内容(文件和子目录)

/// <summary> /// 拷贝目录内容 /// </summary> /// <param name="source">源目录</param> /// <param name="destination">目的目录</param> /// <param name="copySubDirs">是否拷贝子目录</param> public stat

cp scp rsync 拷贝目录文件的一些常识

一. cp 拷贝目录 cp -r dir1 dir2 如果目录dir2不存在.命令相当于mv dir1 dir2 如果目录dir2存在  dir1目录会被拷贝到dir2下面   结果:(dir2/dir1) 其实等于 cp -r dir1/ dir2/ cp -r dir1 dir2/ cp -r dir1/ dir2 (区别 拷贝目录下的所有文件,将dir1下的所有文件和目录拷贝到dir2下,但不包括dir1本身目录) cp -r dir1/* dir2 等于 cp -r dir1/* dir

Linux下拷贝目录和删除

cp命令用于复制文件或目录,若同事指定两个以上的文件或目录,切最后一个目的地是一个已存在的目录,则它会把前面指定的所有文件或目录复制到此目录中.若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息. cp [参数]  源文件或目录  目标文件或目录 cp参数: -a --archive  保留链接数.文件属性,并递归到拷贝目录,起作用等于dpR选项的组合 -b --backup  删除覆盖目的文件先备份,备份的文件或目录亦建立为符号链接,并指向源文件或目录链接的源文件或

python 生成、删除、拷贝目录

1. 生成目录 函数原型:distutils.dir_util.mkpath(name[, mode=0777, verbose=0, dry_run=0]) from distutils import dir_util dir_util.mkpath("new_dir") 2. 删除目录 函数原型:distutils.dir_util.remove_tree(directory[, verbose=0, dry_run=0]) from distutils import dir_ut

shutil.copytree拷贝目录到cifs格式路径报错临时解决办法

shutil.copytree拷贝目录到cifs格式路径报错临时解决办法: 报错原因: 我理解是因为不能保留cifs路径的目录原时间戳(提示权限拒绝),非cifs格式路径不存在该问题 临时解决办法: 通过os.system调用另1个shell脚本(rsync拷贝目录)解决,rsync也是报权限拒绝,不过区别是rsync不影响脚本继续进行(shutil.copytree是直接报错终止) 原文地址:http://blog.51cto.com/yangzhiming/2135844

[转帖]XCopy复制文件夹命令及参数详解以及xcopy拷贝目录并排除特定文件

XCopy复制文件夹命令及参数详解以及xcopy拷贝目录并排除特定文件 https://www.cnblogs.com/smartsmile/p/7665979.html xcopy dirA dirB /s /e /y XCOPY是COPY的扩展,可以把指定的目录连文件和目录结构一并拷贝,但不能拷贝系统文件:使用时源盘符.源目标路径名.源文件名至少指定一个:选用/S时对源目录下及其子目录下的所有文件进行COPY.除非指定/E参数,否则/S不会拷贝空目录,若不指定/S参数,则XCOPY只拷贝源目

PHP拷贝目录下的所有文件

//目录拷贝函数到任意目录function dir1($filename,$dest){ static $dirname; $dirname.=$dest; //连接头(第一层目录) static $dir; //中间变量 if(file_exists($filename)){ //如果文件存在 if(is_dir($filename)){ //如果是目录,则先创建目录然后遍历 $dirnames=basename($filename); //取最后的目录或者文件名,链接到要转移到的第一层目录

Delphi拷贝目录(含子目录)的方法

要实现目录级的拷贝,可以利用Windows API函数ShFileOperation( ),其函数声明如下: WINSHELLAPI int WINAPI SHFileOperation( LPSHFILEOPSTRUCT lpFileOp ); 实例: 新建一个工程,其程序示例如下: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dial

递归拷贝目录与删除目录

/*判断一个路径是否是已存在的目录*/ bool IsDirectory(const std::wstring& pstrPath) { DWORD dw = GetFileAttributes(pstrPath.c_str()); if (dw == INVALID_FILE_ATTRIBUTES) { return false; } return (dw & FILE_ATTRIBUTE_DIRECTORY) != 0; } /*复制目录及目录中的所有内容*/ bool CopyFol