展示 File.list() 列出目錄下檔名陣列,以及 File.renameTo() 移動目錄 (需目標父目錄存在)。主程式接受 list 路徑 或 move 來源 目標 指令。
import java.io.*;
public class DirOps {
public String[] listDir(String path) {
File dir = path.isEmpty() ? new File(".") : new File(path);
if (!dir.isDirectory()) return null;
return dir.list();
}
public boolean moveDir(String src, String dst) {
File s = new File(src);
File d = new File(dst);
if (!s.isDirectory()) return false;
if (!d.isDirectory()) d.mkdirs();
return s.renameTo(new File(d, s.getName()));
}
public static void main(String[] args) {
DirOps ops = new DirOps();
if (args.length == 0) return;
if (args[0].equals("list") && args.length == 2) {
String[] arr = ops.listDir(args[1]);
if (arr != null) for (String s : arr) System.out.println(s);
} else if (args[0].equals("move") && args.length == 3) {
System.out.println(ops.moveDir(args[1], args[2]));
}
}
}
補充:
renameTo 跨檔案系統可能失敗;健壯做法是遞歸複製後刪除來源 (或使用 Files.move with REPLACE_EXISTING, ATOMIC_MOVE)。list() 僅回傳檔名,不含路徑;需完整路徑請用 listFiles()。