一、获取文件信息
在重命名之前,首先需要获取文件的信息,包括文件名、文件路径、文件扩展名、文件大小等等。可以通过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/n/229124.html