一、獲取文件信息
在重命名之前,首先需要獲取文件的信息,包括文件名、文件路徑、文件擴展名、文件大小等等。可以通過C#中的FileInfo類來實現。下面是一個獲取文件信息的示例代碼:
string filePath = @"C:\Test\test.txt"; FileInfo fileInfo = new FileInfo(filePath); string fileName = fileInfo.Name; string fileDirectoryName = fileInfo.DirectoryName; string fileExtension = fileInfo.Extension; long fileSize = fileInfo.Length;
二、重命名文件名
重命名文件名通常是根據一定的規則,將原文件名修改為新的文件名。例如,我們需要將擴展名為txt的文件名加上後綴”_new”,則可以通過以下代碼實現:
string filePath = @"C:\Test\test.txt"; string newFilePath = @"C:\Test\test_new.txt"; FileInfo fileInfo = new FileInfo(filePath); fileInfo.MoveTo(newFilePath);
上述代碼將原文件重命名為新的文件名”test_new.txt”。
三、批量重命名文件
在實際應用中,需要對多個文件進行重命名。可以通過DirectoryInfo類的GetFiles方法來獲取指定目錄中的所有文件,然後遍歷每個文件進行重命名。以下是一個批量重命名文件的示例代碼:
string filePath = @"C:\Test"; DirectoryInfo directoryInfo = new DirectoryInfo(filePath); FileInfo[] fileInfos = directoryInfo.GetFiles(); foreach (FileInfo fileInfo in fileInfos) { string newFileName = $"{fileInfo.Name.Replace(fileInfo.Extension, "")}_new{fileInfo.Extension}"; string newFilePath = Path.Combine(fileInfo.DirectoryName, newFileName); fileInfo.MoveTo(newFilePath); }
上述代碼將指定目錄中所有文件的名稱添加了後綴”_new”。
四、根據文件內容重命名文件
在某些情況下,需要根據文件內容來重命名文件。例如,我們需要將文件中某個單詞出現的次數作為文件名,則可以通過以下代碼實現:
string filePath = @"C:\Test\test.txt"; FileInfo fileInfo = new FileInfo(filePath); string fileContent = File.ReadAllText(filePath); int count = fileContent.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries) .Count(x => x.Equals("test")); string newFileName = $"{count}_test.txt"; string newFilePath = Path.Combine(fileInfo.DirectoryName, newFileName); fileInfo.MoveTo(newFilePath);
上述代碼將文件中單詞”test”出現的次數作為文件名。
五、根據文件創建時間重命名文件
有時候需要根據文件的創建時間來重命名文件。可以通過FileInfo類的CreationTime屬性來獲取文件的創建時間,並將其作為新的文件名。以下是一個根據文件創建時間重命名文件的示例代碼:
string filePath = @"C:\Test\test.txt"; FileInfo fileInfo = new FileInfo(filePath); string newFileName = $"{fileInfo.CreationTime.ToString("yyyyMMddHHmmss")}.txt"; string newFilePath = Path.Combine(fileInfo.DirectoryName, newFileName); fileInfo.MoveTo(newFilePath);
上述代碼將文件的創建時間作為新的文件名。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/229124.html