封裝 java.io.File 常用操作:刪除檔案、取得檔案大小、修改時間、可讀/寫/隱藏屬性、標準路徑。時間轉換為 yyyy-MM-dd HH:mm 格式。主程式接受命令列參數 del 檔名 或 info 檔名 執行對應動作。
import java.io.*;
import java.util.*;
public class FileOps {
public boolean deleteFile(String name) {
try { return new File(name).delete(); }
catch (Exception e) { System.out.println(e); return false; }
}
public String[] getFileInfo(String name) {
try {
File f = new File(name);
long mod = f.lastModified();
long size = f.length();
boolean canRead = f.canRead(), canWrite = f.canWrite(), hidden = f.isHidden();
String[] info = new String[6];
info[0] = String.valueOf(size);
info[1] = formatDate(mod);
info[2] = String.valueOf(canRead);
info[3] = String.valueOf(canWrite);
info[4] = String.valueOf(hidden);
info[5] = f.getCanonicalPath();
return info;
} catch (Exception e) { System.out.println(e); return null; }
}
static String formatDate(long ms) {
if (ms < 0) return "";
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(ms);
return String.format("%tF %tR", cal, cal); // yyyy-MM-dd HH:mm
}
public static void main(String[] args) {
FileOps ops = new FileOps();
if (args.length == 0) return;
String cmd = args[0];
if (cmd.equals("del") && args.length > 1) System.out.println(ops.deleteFile(args[1]));
else if (cmd.equals("info") && args.length > 1) {
String[] inf = ops.getFileInfo(args[1]);
if (inf != null) for (String s : inf) System.out.println(s);
}
}
}
注意:
File 類為舊版 API,Java 7+ 建議使用 java.nio.file.Files / Path 功能更豐富 (支援符號連結、屬性讀取等)。lastModified() 回傳毫秒時間戳,需自行格式化。