java用流實現創建文件夾, 文件改名, 文件刪除, 文件復制


    創建TestFileManager類,在本類中分別創建factFile()方法(遍歷文件夾中所有的文件)、console()方法(換行)、createFolder()方法(創建文件夾)、

    renameFile()方法(改名)、deleteFile()方法(刪除文件)、copyFile()方法(復制文件)、showContent()(每一次操作完成重新輸出所有文件);

package com.maya.hanqi.filemanager;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class TestFileManager {

    private static Map<String, File> fileMap = new HashMap<String, File>();

    private static boolean lock = true;

    public static void main(String[] args) {
        Scanner scanner = null;
        while (lock) {
            showContent();
            scanner = new Scanner(System.in);
            System.out.println("1---在選定的目錄下創建文件夾");
            System.out.println("2---將選定的文件改名");
            System.out.println("3---將選定的文件刪除");
            System.out.println("4---將選定的文件復制到另一個路徑");
            System.out.println("5---退出");
            String console = scanner.nextLine();
            if ("1".equals(console)) {
                System.out.println("想在哪個文件夾下創建 ?");
                String path = scanner.nextLine();
                System.out.println("輸入新文件夾的名字...");
                String folderName = scanner.nextLine();
                createFolder(path, folderName);
            }
            if ("2".equals(console)) {
                System.out.println("說 ! 改誰 ?");
                String fname = scanner.nextLine();
                System.out.println("改成什么 ?");
                String targetName = scanner.nextLine();
                renameFile(fname, targetName);
            }
            if ("3".equals(console)) {
                System.out.println("又看誰不順眼了啊 ?");
                String fname = scanner.nextLine();
                deleteFile(fname);
            }
            if ("4".equals(console)) {
                System.out.println("復制哪個 ?");
                String fname = scanner.nextLine();
                System.out.println("復制到哪里 ?");
                String targetPath = scanner.nextLine();
                copyFile(fname, targetPath);
            }
            if ("5".equals(console)) {
                lock = false;
                System.err.println("系統已經退出 !");
            }
        }
        scanner.close();
    }

    public static void showContent() {
        File file = new File("E:\\java\\folder");
        System.out.println(file.getName());
        fileMap.put(file.getName(), file);
        factFile(file, 1);
    }

    public static void copyFile(String fname, String targetPath) {
        File file = fileMap.get(fname);
        BufferedReader br = null;
        BufferedWriter bw = null;
        String sc = null;
        if (!(file == null)) {
            if (fileMap.get(targetPath).isDirectory()) {
                try {
                    File newFile = new File(fileMap.get(targetPath).getPath() + "\\" + fname);
                    br = new BufferedReader(new FileReader(fileMap.get(fname)));
                    bw = new BufferedWriter(new FileWriter(newFile));
                    while ((sc = br.readLine()) != null) {
                        bw.write(sc);
                    }
                    br.close();
                    bw.close();
                    System.err.println("文件復制成功 !");
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            } else {
                System.err.println("目標路徑不是文件夾, 不能復制 !");
                return;
            }
        } else {
            System.err.println("輸入的路徑不存在 !");
        }
    }

    public static void deleteFile(String fname) {
        File file = fileMap.get(fname);
        if (!(file == null)) {
            if(file.listFiles().length > 0) {
                System.err.println("不是空文件夾, 無法刪除 !");
                return;
            }
            file.delete();
            fileMap.remove(fname);
            System.err.println("文件已刪除 !");
        } else {
            System.err.println("輸入的路徑不存在 !");
        }
    }

    public static void renameFile(String fname, String targetName) {
        File file = fileMap.get(fname);
        if (!(file == null)) {
            File newFile = new File(file.getParentFile().getPath() + "\\" + targetName);
            file.renameTo(newFile);
            System.out.println("文件名已經更改 !");
        } else {
            System.err.println("輸入的路徑不存在 !");
        }
    }

    public static void createFolder(String address, String folderName) {
        File file = fileMap.get(address);
        if (!(file == null)) {
            File newFile = new File(file.getPath() + "\\" + folderName);
            if (newFile.mkdirs()) {
                System.err.println("文件夾成功創建");
            } else {
                System.err.println("創建文件夾失敗");
            }
        } else {
            System.err.println("輸入的路徑不存在 !");
        }
    }

    public static void console(int k) {
        for (int a = 0; a < k; a++) {
            System.out.print("   ");
        }
    }

    public static void factFile(File file, int length) {
        if (file.exists() && file.isDirectory()) {
            File[] fs = file.listFiles();
            for (int i = 0; i < fs.length; i++) {
                console(length);
                System.out.println(fs[i].getName());
                factFile(fs[i], length + 1);
                fileMap.put(fs[i].getName(), fs[i]);
            }
        }
    }
}

 


免責聲明!

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



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