在C#中修改文件名

用c#的方法将原文件批量修改或新文件名, 比如说 20090702020024058[1].jpg 将改为 20090702020024058.jpg

我以前写了一个这样的工具,就是批量将文件夹,以及子文件夹下的文件名按照表达式批量更改名称.
用2003写的,以下是核心代码:
private void Rename(string folderPath)
{
string fileName = "unnamed";
string fileExtension = "";
System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(folderPath);
foreach(System.IO.FileSystemInfo fsi in di.GetFileSystemInfos())
{
if(fsi is System.IO.DirectoryInfo)
{
Rename(fsi.FullName);
}
else
{
fileName = fsi.Name;
int lastDot = fileName.LastIndexOf('.');
if(lastDot != -1) //这样操作,可以处理没有扩展名的文件
{
fileExtension = fileName.Substring(lastDot); //取得文件扩展名
fileName = fileName.Substring(0,lastDot); //get file name without extension.
}

fileName = System.Text.RegularExpressions.Regex.Replace(fileName,this.txtRegex.Text.Trim(),this.txtReplace.Text.Trim());
fileName += fileExtension;
try
{
if(fileName == fsi.Name) continue; //文件名没有改变.
System.IO.File.Move(fsi.FullName,folderPath + "\\" + fileName);
this.listBox.Items.Add(fsi.Name + "\t\t moved to \t\t" + fileName);
}
catch
{
//throw;
this.listBox.Items.Add(fsi.Name + "\t\t can't move to \t\t" + fileName);
}
}
}// end foreach
}//end method

表达式(txtRegex.Text):\[\d+\]] ;txtReplace.Text 为"";结果如下
1516178994_483324109c_s[1].jpg moved to 1516178994_483324109c_s.jpg
1554855298_e1a68da37c_s[1].jpg moved to 1554855298_e1a68da37c_s.jpg
aiga-25[1].gif moved to aiga-25.gif
bg-top[1].gif moved to bg-top.gif
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-03-07
用System.IO.File.Move(源文件名,新文件名)本回答被提问者和网友采纳

在C#中修改文件名
int lastDot = fileName.LastIndexOf('.');if(lastDot != -1) \/\/这样操作,可以处理没有扩展名的文件 { fileExtension = fileName.Substring(lastDot); \/\/取得文件扩展名 fileName = fileName.Substring(0,lastDot); \/\/get file name without extension.} fileName = System.Text.RegularEx...

C#有特殊符号文件名怎么改
使用字符串替换方法。

C# FTP上传文件同时更改该文件的名称
首先选好ftp服务器文件夹作为上传路径 _ftpClient.Files.Upload(Path.GetFileName(f), f);然后用Upload方法上传,Path.GetFileName(f)就是上传的文件名,可以更改。如果为了文件名唯一性,可以在上传前先判定服务器里是否有同名文件,foreach (var file in _ftpClient.Files){ xxxxx } 有同名就加...

怎样重新命名C#已建好的Windows窗体应用程序
1:重命名类名,点击窗体,在属性面板中修改Name属性 2:重命名文件名,在解决方案资源管理器中右键点击窗体文件,选择重命名即可

c#实现把一个文件从一个文件夹复制到另外一个文件夹并改名
File类在 System.IO;string path = @"d:\\temp\\MyTest.txt";string path2 = @"d:\\temp\\temp.txt";File.Copy(path, path2);\/\/不允许覆盖目的地的同名文件 File.Copy(path, path2, true);\/\/允许覆盖目的地的同名文件 \/\/参看MSDN ...

C# 如何给复制文件重命名?
string path="你想要的文件路径名";int ex=0;\/\/面的小数字 for(;;){ string fullname=path+ex.ToString();File.Copy("源文件地址",fullname);}这样就可以无限复制了 }

c#如何改文件名
Move是正常的重命名方法,至于显示问题,那是windows的自动排列不好。若要用Process.Start方法,需要引用System.Diagnostics命名空间,也就是最上面加 Using System.Diagnostics;而且你不能改他的cmd部分啊。Process.Start( "cmd", "\/C " + "ren f:\\\\first c code.txt zhou.txt");

C#中用File.Exists更改系统文件件夹下文件名总是失败并且不报错?_百度...
参考以下:1)这是权限的问题,单独设置123.txt权限不够,还有文件夹的权限 2)尽量不要操作系统盘中的文件,万一删错就麻烦了

c#更改扩展名复制文件
直接用API函数改是最快最好的。1、先在构造方法上面添加 [DllImport("KERNEL32.dll")] public static extern bool MoveFile( string lpExistingFileName, string lpNewFileName );2、在需要改名的地方添加string newFileName = "xxx名" + ".bak";bool vale = true;vale = MoveFile( "D:\\\\aa\\\\01.txt",...

c#中遍历一个文件夹 并对其子文件夹中的文件移动到一个新创建的文件夹...
--- 代码基本上是这样的,需要修改移动的文件名的话,修改file.MoveTo(Path.Combine(p_2, file.Name));这句就可以了。private void button2_Click(object sender, EventArgs e){ if (!(!string.IsNullOrEmpty(textBox1.Text) && !string.IsNullOrEmpty(textBox3.Text))){ MessageBox.Show("没有...

相似回答