用Java實現文件的剪切



/**
 * 剪切一個文件夾,且文件夾中包含內容,有問題的地方大家可以指出
 */
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class Shear {
    // 創建文件復制文件方法,以便調用
    public static void copy(File f1, File f2) throws IOException {
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream(f1));
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(f2));
        int len = 0;
        byte[] b = new byte[1024];
        while ((len = bis.read(b)) != -1) {
            bos.write(b, 0, len);
        }
        bis.close();
        bos.close();
    }

    // 此處方法調用復制文件方法,將其與創建文件夾的方法整合
    public static void copy2(File f, File f2) throws Exception {
        if (!f2.exists()) {
            f2.mkdirs();// mkdir創建指定目錄,mkdirs可創建多層不存在的目錄
        }
        File[] arr = f.listFiles();
        for (int i = 0; i < arr.length; i++) {
            if (arr[i].isFile()) {
                copy(arr[i], new File(f2.getPath() + "\\" + arr[i].getName()));
            } else {// 此處"\\"僅適用於windows平台,若想實現通用,可將其改為separator
                copy2(arr[i], new File(f2.getPath() + "\\" + arr[i].getName()));
            }
        }
    }

    // 創建刪除方法,復制完成后刪除文件
    public static void Del(File f) {
        if (f.isFile()) {
            f.delete();
        } else {
            File[] arr = f.listFiles();
            for (int i = 0; i < arr.length; i++) {
                Del(arr[i]);
            }
            f.delete();
        }
    }

    public static void main(String[] args) throws Exception {
        // 讀取文件和創建文件夾
        // 1、判斷該文件下是否存在文件
        File f = new File("OldPath");// "OldPath"指舊的文件路徑
        File f2 = new File("NewPath");// "NewPath"指新的文件路徑
        copy2(f, f2);
        System.out.println("復制完成");
        Del(f);
        System.out.println("刪除完成");

    }

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM