1. 程式人生 > >java用流實現創建文件夾, 文件改名, 文件刪除, 文件復制

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

創建文件夾 copy rac rect exists for can not col

    創建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]); } } } }

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