![](/img/trans.png)
[英]How to get one character from RichTextBox C# WPF click a button and change the color of it
[英]How to change 2 types of file extensions on one button click in c#?
我想同时更改更多文件扩展名,例如,将所有.txt文件更改为.txt.NO,将.jpg.NO更改为.jpg
我的代码如下所示:
private void button_Click(object sender, EventArgs e)
{
DirectoryInfo d = new DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory);
FileInfo[] infos = d.GetFiles();
foreach (FileInfo f in infos)
{
File.Move(f.FullName, f.FullName.ToString().Replace(".txt", ".txt.NO"));
File.Move(f.FullName, f.FullName.ToString().Replace(".jpg.NO", ".jpg"));
}
}
尝试一次进行2次更改时出现错误。 当我仅使用第一条File.Move
行时,我的程序正在运行。
当您在第一行中重命名文件时,第二行将失败,因为该文件不再具有该名称。
您需要基于文件扩展名的条件。
foreach (FileInfo f in infos)
{
if(f.FullName.EndsWith(".txt"))
File.Move(f.FullName, f.FullName.ToString().Replace(".txt", ".txt.NO"));
else if(f.FullName.EndsWith(".jpg.NO"))
File.Move(f.FullName, f.FullName.ToString().Replace(".jpg.NO", ".jpg"));
}
问题是您要移动/重命名同一个文件两次,并且在第二次Move
,属性f.FullName
仍然是扩展名为.txt
文件,但是此文件已不存在,因为您已经移动了它。
您应该使用条件检查它是文本文件还是图像。
像这样的东西
foreach (FileInfo f in infos)
{
if (f.FullName.EndsWith(".txt"))
{
File.Move(f.FullName, f.FullName.ToString().Replace(".txt", ".txt.NO"));
}
else if (f.FullName.EndsWith(".jpg.NO"))
{
File.Move(f.FullName, f.FullName.ToString().Replace(".jpg.NO", ".jpg"));
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.