首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

Java 批次修改檔案名稱完整實作範例

     編輯:Java 程式設計入門

前言

在實際開發中,經常需要批次重命名大量檔案。本文提供一個完整的 Java 實作範例,透過讀取對照表檔案,將指定目錄下的檔案依照新舊名稱對應關係進行批次重命名。

核心程式碼實作

import java.io.*;
import java.util.*;

public class BatchRenameFiles {
    public static void main(String[] args) throws IOException {
        // 讀取對照表檔案(格式:新檔名#舊檔名)
        BufferedReader br = new BufferedReader(new FileReader("output1.txt"));
        List<String> newNames = new ArrayList<>();
        List<String> oldNames = new ArrayList<>();
        String line;
        String[] columns;

        // 解析每一行資料
        while ((line = br.readLine()) != null) {
            columns = line.split("#");
            newNames.add(columns[0]);
            oldNames.add(columns[1]);
        }
        br.close();

        // 執行批次重命名
        for (int i = 0; i < newNames.size(); i++) {
            File oldFile = new File("D:\\TDDOWNLOAD\\heihei\\" + oldNames.get(i) + ".mp4");
            System.out.println("檢查檔案是否存在: " + oldFile.exists());

            File newFile = new File(oldFile.getParent() + File.separator + newNames.get(i) + ".mp4");

            if (newFile.exists()) {
                System.out.println(i + " 目標檔案已存在,略過");
            } else {
                boolean renamed = oldFile.renameTo(newFile);
                System.out.println(i + "\t重命名結果: " + renamed);
            }
        }
    }
}

關鍵技術點解析

1. 檔案讀取與解析

使用 BufferedReader 逐行讀取對照表,透過 split("#") 分割新舊檔名,分別存入兩個 List 中保持順序對應。

2. 路徑處理最佳實踐

採用 File.separator 而非硬編碼路徑分隔符,確保跨平台相容性。透過 oldFile.getParent() 取得原檔案目錄,避免路徑拼接錯誤。

3. 安全重命名機制

  • 先檢查來源檔案是否存在 oldFile.exists()
  • 檢查目標檔名是否已被佔用 newFile.exists()
  • 使用 renameTo() 進行原子性重命名操作

執行前準備

  1. 準備 output1.txt 對照表,每行格式:新檔名#舊檔名
  2. 確認目標檔案目錄路徑正確(範例中為 D:\TDDOWNLOAD\heihei\)
  3. 確保程式有該目錄的讀寫權限

常見問題與解決方案

問題原因解決方法
重命名失敗返回 false檔案被其他程式佔用、權限不足、跨磁碟移動關閉佔用程式、提升權限、改用複製後刪除方式
目標檔案已存在對照表有重複新檔名、目錄已有同名檔案檢查對照表去重、加入重複處理邏輯
來源檔案不存在對照表舊檔名錯誤、副檔名不符驗證對照表資料、支援多種副檔名

進階擴充建議

  • 支援遞迴處理子目錄
  • 加入乾跑模式,僅列印不實際重命名
  • 支援正則表達式批次重命名
  • 新增進度條與詳細日誌記錄
  • 實作撤銷重命名功能

總結

此範例展示了 Java 進行檔案批次重命名的標準流程:讀取對照表 → 驗證檔案存在性 → 安全重命名 → 結果回報。透過良好的錯誤處理與跨平台路徑處理,可直接應用於生產環境的檔案管理任務中。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved