C# 批量修改部分文件名

比如我一个文件夹里有123.txt ,234.txt ,123534.txt,567.exe,234.html 这几个文件
批量把这个文件夹里所有文件的某个字符替换掉,比如把2换成qwe。结果就是
12qwe3.txt ,qwe34.txt ,1qwe3534.txt,567.exe,qwe34.html

谢谢~

思路:

    先通过文件夹对象找到所有文件

    FIleInfo 文件操作对象 截取文件名 如 asdf.txt ->asdf   

    将指定文件移动到新的位置,并重新指定文件名 

案例如下:

//获取D盘下aaa文件夹下面的所有文件     
string [] path=Directory.GetFiles(@"D:\aaa");            
foreach (string str in path)            
     {                
         FileInfo file = new FileInfo(str);                
         //截取文件名 如 asdf.txt ->asdf                
         string f = file.Name.Substring(0, file.Name.LastIndexOf("."));                    //替换指定文件名 新文件地址      file.Extension指文件的后缀名                     string p = @"D:\aaa\" +(f.Replace("x", "abd") + file.Extension);                  //将指定文件移动到新的位置,并重新指定文件名                
         file.MoveTo(p);           
     }


如有问题可以追问,我当及时回答.

希望能帮到你!

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-09-03

需要用到Directory 类或者DirectoryInfo 只是一个可以用静态方法,一个需要实例化。 根据你的情况建议用DirectoryInfo 。  直接用实例化之后用GetFiles()的Method,返回的是一个FileInfo的集合,遍历这个集合获得每一个文件的路径,  最后用File.move(old,new);大概就这样了,有问题在问我


追问

这个试过。貌似只能用全新的文件名代替oldname么?

追答

其实原理是把那个文件移动了 ,只是移动后改了名字。 而且 全新的文件名替换有问题么, 这几行代码 有问题?

第2个回答  2013-09-03
C#里面没有重名,

不过可以试试File.Move这个方法
把原来的文件名取出来.然后进行字符串处理
第3个回答  2013-09-03
先扫描文件名,把文件名保存成字符,替换掉字符,重新命名文件就可以了追问

回头查查语法试试。。

回头查查语法试试。。

相似回答