[C#] 批次更改資料夾中的檔案名稱

2023/10/22閱讀時間約 4 分鐘


當我們需要在C#中批次更改資料夾中的檔案名稱時,我們可以使用一個自定義的C#類別。這個類別會讓我們指定資料夾路徑和新的檔名,然後它會遍歷資料夾中的檔案,為每個檔案生成一個新的名稱,新名稱由指定的檔名加上一個序號組成。

建立一個C#類別

首先,我們需要建立一個C#類別,我們可以將其稱為FileRenamer。這個類別將包含一個方法,用於批次更改資料夾中的檔案名稱。

csharpCopy code
using System;
using System.IO;

class FileRenamer
{
public static void RenameFiles(string folderPath, string baseFileName)
{
// 在這裡實現後續的邏輯
}
}

讀取指定的資料夾

RenameFiles方法中,我們首先要確保指定的資料夾存在。如果資料夾不存在,我們會顯示一個錯誤訊息。

csharpCopy code
if (!Directory.Exists(folderPath))
{
Console.WriteLine("指定的資料夾不存在。");
return;
}

遍歷檔案並更改名稱

接下來,我們使用Directory.GetFiles方法獲取資料夾中的所有檔案。然後,我們設定一個初始的序號fileCount,它將用於生成新的檔名。

csharpCopy code
string[] files = Directory.GetFiles(folderPath);
int fileCount = 1;

現在,我們遍歷這些檔案,為每個檔案生成新的名稱並重命名它。新的名稱由指定的檔名加上一個序號(使用三位數的格式)和檔案的原始擴展名組成。我們同時確保新的名稱不與現有的檔案名稱衝突。

csharpCopy code
foreach (string filePath in files)
{
string extension = Path.GetExtension(filePath);
string newFileName = $"{baseFileName}{fileCount:D3}{extension}";

string newFilePath = Path.Combine(folderPath, newFileName);

if (File.Exists(newFilePath))
{
Console.WriteLine($"檔案 {newFileName} 已存在。");
}
else
{
File.Move(filePath, newFilePath);
Console.WriteLine($"已更改檔案名稱:{Path.GetFileName(filePath)} -> {newFileName}");
}

fileCount++;
}

使用該類別

最後,我們可以使用這個類別來更改資料夾中的檔案名稱。我們只需提供資料夾路徑和新的檔名即可。

csharpCopy code
Console.WriteLine("請輸入資料夾路徑:");
string folderPath = Console.ReadLine();

Console.WriteLine("請輸入檔名(不包含序號和檔案副檔名,例如:file_):");
string baseFileName = Console.ReadLine();

FileRenamer.RenameFiles(folderPath, baseFileName);

Console.WriteLine("完成。")

這樣,我們就完成了一個能夠讀取指定資料夾,批次更改檔案名稱的C#應用程式。該應用程式會根據指定的檔名和一個序號來生成新的檔名,並確保不與現有的檔案名稱衝突。





51會員
101內容數
這裡將以輕鬆風格,深入探討程式設計的基礎和高級概念。從程式語言到演算法,我們將以易懂的方式解釋每個主題,讓你輕鬆掌握。無論你是初學者或有經驗者,都能在這裡找到適合你的內容。無論你的目標是成為專業開發者還是擴展知識,我們都會陪伴你一同成長!
留言0
查看全部
發表第一個留言支持創作者!