在C#中修改文件名

在C#中修改文件名,第1张

我以前写了一个这样的工具,就是批量将文件夹,以及子消销枣文件夹下的文件名按照表达式批量更改名称.

用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

//获取当前进程的完整路径,包含文件名燃配(进程名)。

string str = this.GetType().Assembly.Location

result: X:\xxx\xxx\xxx.exe (.exe文件所在的目录+.exe文件名)

//获取新的 Process 组件并将其与当前活动的进程关联的主模块的完整路径,包含文件名(进程名)。

string str = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName

result: X:\皮孝指xxx\xxx\xxx.exe (.exe文件所在的目录+.exe文件名)

//获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。

string str = System.Environment.CurrentDirectory

result: X:\xxx\xxx (.exe文件所在的目录)

//获取当前 Thread 的当前应用慎辩程序域的基目录,它由程序集冲突解决程序用来探测程序集。

string str = System.AppDomain.CurrentDomain.BaseDirectory

result: X:\xxx\xxx\ (.exe文件所在的目录+"\")

//获取和设置包含该应用程序的目录的名称。(推荐)

string str = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase

result: X:\xxx\xxx\ (.exe文件所在的目录+"\")

//获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称。

string str = System.Windows.Forms.Application.StartupPath

result: X:\xxx\xxx (.exe文件所在的目录)

//获取启动了应用程序的可执行文件的路径,包括可执行文件的名称。

string str = System.Windows.Forms.Application.ExecutablePath

result: X:\xxx\xxx\xxx.exe (.exe文件所在的目录+.exe文件名)

//获取应用程序的当前工作目录(不可靠)。

string str = System.IO.Directory.GetCurrentDirectory()

result: X:\xxx\xxx (.exe文件所在的目录)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12144968.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存