重命名文件夹中的某些文件

我有一个使用C#的文件夹中更改某些文件的名称(即,dynamic地将ID添加到每个名称)的任务。

例如:help.txt到1help.txt

我怎样才能做到这一点?

看看FileInfo 。

做这样的事情:

void RenameThem() { DirectoryInfo d = new DirectoryInfo("c:/dir/"); FileInfo[] infos = d.GetFiles("*.myfiles"); foreach(FileInfo f in infos) { // Do the renaming here File.Move(f.FullName, Path.Combine(f.DirectoryName, "1" + f.Name)); } } 

我只是在这里转储这个,因为我需要为我自己的目的写这个代码。

 using System; using System.IO; public static class FileSystemInfoExtensions { public static void Rename(this FileSystemInfo item, string newName) { if (item == null) { throw new ArgumentNullException("item"); } FileInfo fileInfo = item as FileInfo; if (fileInfo != null) { fileInfo.Rename(newName); return; } DirectoryInfo directoryInfo = item as DirectoryInfo; if (directoryInfo != null) { directoryInfo.Rename(newName); return; } throw new ArgumentException("Item", "Unexpected subclass of FileSystemInfo " + item.GetType()); } public static void Rename(this FileInfo file, string newName) { // Validate arguments. if (file == null) { throw new ArgumentNullException("file"); } else if (newName == null) { throw new ArgumentNullException("newName"); } else if (newName.Length == 0) { throw new ArgumentException("The name is empty.", "newName"); } else if (newName.IndexOf(Path.DirectorySeparatorChar) >= 0 || newName.IndexOf(Path.AltDirectorySeparatorChar) >= 0) { throw new ArgumentException("The name contains path separators. The file would be moved.", "newName"); } // Rename file. string newPath = Path.Combine(file.DirectoryName, newName); file.MoveTo(newPath); } public static void Rename(this DirectoryInfo directory, string newName) { // Validate arguments. if (directory == null) { throw new ArgumentNullException("directory"); } else if (newName == null) { throw new ArgumentNullException("newName"); } else if (newName.Length == 0) { throw new ArgumentException("The name is empty.", "newName"); } else if (newName.IndexOf(Path.DirectorySeparatorChar) >= 0 || newName.IndexOf(Path.AltDirectorySeparatorChar) >= 0) { throw new ArgumentException("The name contains path separators. The directory would be moved.", "newName"); } // Rename directory. string newPath = Path.Combine(directory.Parent.FullName, newName); directory.MoveTo(newPath); } } 

您正在查找的函数是System.IO命名空间的File.Move(source, destination) 。 还要看看DirectoryInfo类(具有相同的名称空间)来访问该文件夹的内容。

看看如何在C#中重命名文件? 。 我不知道C#没有重命名…看来你必须使用System.IO.File.Move(oldFileName, newFileName)

你可以使用File.Move ,像这样:

 string oldFilePath = Path.Combine( Server.MapPath("~/uploads"), "oldFileName"); string newFilePath = Path.Combine( Server.MapPath("~/uploads"), "newFileName"); File.Move(oldFilePath, newFilePath); 

在.NET Framework 4.0上,我使用只带1个参数的FileInfo.MoveTo()方法

移动文件我的方法看起来像这样

 private void Move(string sourceDirName, string destDirName) { DirectoryInfo dir = new DirectoryInfo(sourceDirName); FileInfo[] files = null; files = dir.GetFiles(); foreach (FileInfo file in files) { string temppath = Path.Combine(destDirName, file.Name); file.MoveTo(temppath); } } 

重命名文件我的方法看起来像这样

 private void Rename(string folderPath) { int fileCount = 0; DirectoryInfo dir = new DirectoryInfo(folderPath); files = dir.GetFiles(); foreach (FileInfo file in files) { fileCount += 1; string newFileName = fileCount.ToString() + file.Name; string temppath = Path.Combine(folderPath, newFileName); file.MoveTo(temppath); } } 

正如你可以看到的重命名文件它的语法是几乎相同的移动它,只需要修改filename之前使用MoveTo()方法。