Java递归实现操作系统文件的复制、粘贴和删除功能

通过Java IO递归实现操作系统对文件的复制、粘贴和删除功能,剪切=复制+粘贴+删除

代码示例:

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

/**
 * achieve file copy and delete using recursion
 *
 * @author ForeverLover
 *
 */
public class FileCopyAndDelete {

    // delete files of this path
    public void deleteFile(String path) {
        File f = new File(path);
        if (f.isDirectory()) {
            File[] file = f.listFiles();
            for (File file1 : file) {
                this.deleteFile(file1.toString());
                file1.delete();
            }
        } else {
            f.delete();
        }
        f.delete();
    }

    // copy files from path1 to path2
    public void copyFiles(String path1, String path2) throws IOException {
        File f = new File(path1);
        if (f.isDirectory()) {
            File file = new File(path2);
            if (!file.exists())
                file.mkdir();
            File[] file1 = f.listFiles();
            for (File file2 : file1) {
                copyFiles(file2.toString(), path2 + "/" + file2.getName());
            }
        } else {
            copy(path1, path2);
        }
    }

    // copy file from path1 to path2 one by one
    public void copy(String path1, String path2) throws IOException {

        DataInputStream in = new DataInputStream(new BufferedInputStream(
                new FileInputStream(path1)));

        byte[] b = new byte[in.available()];// available返回实际可读字节数,即总大小
        in.read(b);

        DataOutputStream out = new DataOutputStream(new BufferedOutputStream(
                new FileOutputStream(path2)));
        out.write(b);

        in.close();
        out.close();
    }

    //main method
    public static void main(String[] args) {
        FileCopyAndDelete f = new FileCopyAndDelete();

        // test copy files using recursive
        /*
         * { String path1 = "D://Folder1"; String path2 = "D://Folder2"; try {
         * f.copyFiles(path1, path2); System.out.println("OK,COPY FINISH"); }
         * catch (IOException e) { e.printStackTrace(); } }
         */

        // test delete files using recursive
        /*
         * { f.deleteFile("C://Folder1");
         * System.out.println("OK,DELETE FINISH"); }
         */

    }
}
时间: 2024-09-30 15:26:45

Java递归实现操作系统文件的复制、粘贴和删除功能的相关文章

Java本地文件操作(一)文件的创建、删除、重命名

package com.yeqc.testDemo; import java.io.File; public class HelloFile { public static void main(String[] args) { File file = new File("hello.txt"); if (file.exists()) { System.out.println(file.isFile()); System.out.println(file.isDirectory());

【vim小小记】vim的复制粘贴(包括系统剪贴板)

1.vim常用复制粘贴命令 Vim的复制粘贴命令无疑是y (yank),p(paster),加上yy,P PS: vim有个很有意思的约定(我觉得是一种约定),就是某个命令的大小写都是实现某种功能,只是方向不同,比如: w 跳转到下个word,W:跳转到上个word f 某行正向查找并跳转 F: 反向.... 然后部分双写的字母有行操作: yy 复制一行 dd 删除一行 所以, p就是在当前光标后粘贴,P就是在当前光标前粘贴 另外,说完p,其实还有几个命令有时也是很有用的 gp,和p的功能基本一

问题:远程桌面 无法复制粘贴

问题症状: 在打开的远程桌面上,无法与本地桌面相互复制粘贴. 解决方法: 1. 进入远程桌面窗口,找到选项, 进入本地资源,找到剪切板和详细信息里的驱动器,选择. 2. 做了以上操作后,还是无法复制粘贴,十分奇怪,后来找了下,发现有一个rdpclip.exe 进程,专门控制远程桌面的复制粘贴,如果你完成以上操作还是不能复制粘贴,就需要重启这个进程,或者,打开这个进程 任务管理器里关闭掉"rdpclip.exe"进程, 开始->运行->rdpclip.exe 重启进程 需要注

【转】MFC 自定义edit 限制输入十六进制内容 响应复制粘贴全选剪切的功能

Ctrl组合键ASCII码 ^Z代表Ctrl+z                     ASCII值 控制字符  ASCII值 控制字符  ASCII值 控制字符  ASCII值 控制字符0(00)        NULL       8(08)        ^H         16(10)    ^P             24(18)    ^X1(01)         ^A           9(09)        ^I            17(11)    ^Q    

Vim 安装、配置及复制粘贴操作

1.安装:sudo apt-get install vim 2.配置:cd ~ #进入用户主目录 touch .vimrc #.后缀文件不可见 vi .vimrc #打开文件 输入: 1 set cindent 2 3 set shiftwidth=4 4 set tabstop=4 5 set softtabstop=4 6 7 set number 8 set hlsearch 9 syntax on 10 11 set showmode 12 set foldmethod=syntax 1

Delphi对Excel复制粘贴操作纠错

本人学一下delphi怎么操作excel表格,正好要用到表格的复制粘贴功能,然后在网上找博客学习,结果找了以后发现基本上博客都是一个抄一个的,这样子我都不说什么了,问题是抄的很多 是错误的,误导了我两天.下面,我针对这些错误纠错一下,我不敢保证我说的对不对.全不全,反正我下面写的代码都是可以运行的. Var wb1 : Variant; wb2 : Variant; vsheet1 , vsheet2: Variant; range1 , range2 : Variant; 打开并显示表格就不多

【神器】vimum在浏览器中键盘操作选择、复制、粘贴,键盘党的最爱

1.下载: http://files.cnblogs.com/files/quejuwen/vimum_extension_1_56.zip 2.开源:https://github.com/philc/vimium 最新版本最大的改变就是可以键盘操作复制粘贴. 1.使用“/text”将选中起点 2.使用“v”命令进入可视模式 3.选择你要的文字 4.使用“y”,复制到系统剪贴板 5.可以任意粘贴了. 官方快捷键参考: Keyboard Bindings Modifier keys are spe

怎样在cmd(命令提示符)下进行复制粘贴操作

如右图,右键命令提示符窗口的标题栏,选择属性.   选择“编辑选项”里的“快速编辑模式”,并确定之:   在弹出的应用选择提示框上选择“保存属性,供以后具有相同标题的窗口使用”:   如此你就可以便捷的在命令提示符窗口里进行复杂粘贴操作了.复制:进行如上设置后,鼠标左键按下选定一个区域,再右键在窗口内单击(或者按一下回车键),就将选定区文字复制下了.粘贴:在未选定文字的状态下,窗口内单击右键,就将剪贴板的文字内容粘贴到窗口光标处了.

除了一键复制粘贴,“软件机器人”还能自动完成这些电脑操作...

日常工作中,我们经常会遇到,或者看到身边的人,常常被大量繁琐的重复性电脑操作所困扰.如销售人员为收集客户信息,需要某些网站查询复制一些客户信息:专家医生做某类病症科研分析,需要采集HIS系统临床数据进行汇总分析-- 这些简单且具重复规律性工作,消耗了大量的时间和精力,束缚了双手和双眼,为此腰酸背痛.头晕眼花.同时,又不得不带着这种精疲力尽的状态,继续这些手工搬运数据的工作,出现工作错误.失误,导致更多时间的浪费和其他损失. 所以,我们常希望能出现一个人,能够听从指令,按照要求,快速而又准确地完成