C#实现批量修改指定文件夹中文件的扩展名,可指定某种类型,可指定全部
作者:互联网
背景:创作的由来。个文件夹中许多子文件,想传到某云方便日后换电脑时也能便捷查看,殊不知等资源传上去之后某云不支持预览。无奈只下只能将所有文件批量修改完txt格式,再重新传一遍,几百个文件,一秒搞定,哈哈哈!!!
源文件如下:
以上还只是一层,每层文件夹下还有n多的子文件,如果手动自己一个个修改。OMG,想想都可怕!!
以下是某个文件夹里的子文件。
好了,到这里,我们需要 做的事就是,让程序来做。程序要的思想就是,任何能用代码实现的东西,绝不让鼠标重复点击。
上代码:
/// <summary>
/// 修改文件后缀
/// </summary>
/// <param name="sourceExtension">源文件的后缀名,传空值时修改所有文件</param>
/// <param name="extension">文件修改后的后缀名</param>
private void UpdateExtension(string sourceExtension, string extension)
{
string foldPath = textBox1.Text;
if (!string.IsNullOrEmpty(foldPath))
{
//初始化文件夹对象
DirectoryInfo dir = new DirectoryInfo(foldPath);
// 获取当前文件夹下的所有文件
//TopDirectoryOnly:在搜索操作中包括仅当前目录
//FileInfo[] files = dir.GetFiles("*.*", SearchOption.TopDirectoryOnly);
FileInfo[] files = dir.GetFiles(sourceExtension == "" ? "*.*" : "*.js", SearchOption.AllDirectories);
//遍历当前文件夹下的所有文件
for (int i = 0; i < files.Length; i++)
{
//获取并输出文件扩展名称
Console.WriteLine(Path.GetExtension(files[i].FullName));
//修改文件扩展名称
files[i].MoveTo(Path.ChangeExtension(files[i].FullName, extension));
//获取并输出文件扩展名称
Console.WriteLine(Path.GetExtension(files[i].FullName));
}
MessageBox.Show("Complete!");
}
}
设置界面文件夹目录:
//弹框选择文件夹
FolderBrowserDialog dialog = new FolderBrowserDialog
{
Description = "请选择文件夹"
};
if (dialog.ShowDialog() == DialogResult.OK)
{
//获得文件夹路径
string foldPath = dialog.SelectedPath;
textBox1.Text = foldPath;
}
调用方式:
UpdateExtension("js", "txt");
界面设计:
挺简单的,需要源码可以在个人简介找到联系方式!
标签:files,文件,扩展名,string,C#,指定,foldPath,修改,文件夹 来源: https://blog.csdn.net/xukai515786/article/details/110182595