首页 > 学院 > 开发设计 > 正文

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

2019-11-14 15:18:22
字体:
来源:转载
供稿:网友

通过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"); }         */    }}

 


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表