批量修改文件名

using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Text;
using System.Text.RegularExpressions;
using System.Windows.Forms;

namespace WindowsFormsApplication5
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        public string s;
        
        /// <summary>
        /// 枚举文件夹内容
        /// </summary>
        /// <param name="lv">输入参数,判别在哪个ListView中显示</param>
        public void meiju(ListView lv)
        {
            if (!string.IsNullOrEmpty(textBox1.Text))//判断文本框中是否有内容
            {
                List<string> st = new List<string>();
                foreach (string file in Directory.GetFiles(textBox1.Text))//获取指定目录下的文件名称,不包括文件夹
                {
                    st.Add(file);
                    //MessageBox.Show(file);
                }
                lv.Columns.Clear();
                lv.Columns.Add("文件名", 400);
                lv.Items.Clear();
                for (int i = 0; i < st.Count; i++)
                {
                    lv.Items.Add(new ListViewItem(new string[] { st[i] }));//遍历文件夹内文件
                }
            }
        }
        private void button1_Click(object sender, EventArgs e)
        {
            meiju(listView1);
        }

        private void button2_Click(object sender, EventArgs e)
        {

            DialogResult isok = folderBrowserDialog1.ShowDialog();
            if (isok == DialogResult.OK)
            {
                s = folderBrowserDialog1.SelectedPath;//显示选中的哪个文件夹
                textBox1.Text = s;
            }
        }

        private void buttonX_Click(object sender, EventArgs e)
        {
            //string path = listView1.SelectedItems[0].Text;
            //MessageBox.Show(path);
            ////string[] sd = Directory.GetDirectories(textBox1.Text);//能获取到指定目录下的文件夹名称
            //string[] sd = Directory.GetFiles(textBox1.Text);
            //MessageBox.Show(sd[1]);
            
            //string sdname = Path.GetFileName(sd[0]);//获取文件的名称,没有路径,直接是文件名称
            //MessageBox.Show(sdname);
            //string sdname1 = Path.GetPathRoot(sd[0]);//获取根目录,也就是盘符
            //MessageBox.Show(sdname1);
            //string sdname2 = Path.GetDirectoryName(sd[0]);//获取父级文件夹的路径信息
            //MessageBox.Show(sdname2);
            //string OldStr = sdname2 +@""+ sdname;
            //MessageBox.Show(OldStr);
            //string NewStr = sdname2 + @"" + textBox2.Text;
            //FileInfo fi = new FileInfo(OldStr);
            //fi.MoveTo(NewStr);//将制定文件移动到新位置,并提供新的文件名
            //Path.GetExtension();//获取文件的扩展名

            Xupdate();
            meiju(listView2);
        }

        public void RenameDirectories(string OldPathName, string newPathName)
        {
            int i = 1;
            string[] sDirectories = Directory.GetDirectories(OldPathName);
            foreach (string sd in sDirectories)
            {
                string sdName = Path.GetFileName(sd);//获取文件的名称,没有路径,直接是文件名称
                string sNewName = string.Format(newPathName, i++);//替换,string.Format(a{0},b{1},p1,p2) 输出结果为 a p1,b p2
                string sNewDirectory = Path.Combine(OldPathName, sNewName);//将两个字符串合并
                Directory.Move(sd, sNewDirectory);//重命名文件或移动文件到新的位置
            }
        }

        private void buttonD_Click(object sender, EventArgs e)
        {
            //for (int i = 0; i < listView1.SelectedItems.Count; i++)//鼠标选择的所有项
            //{
            //    MessageBox.Show(listView1.SelectedItems[i].Text);
            //}

            Dupdate();
            meiju(listView2);
        }

        /// <summary>
        /// 单个修改文件函数
        /// </summary>
        public void Dupdate()
        {
            if (listView1.SelectedItems != null)
            {
                string path = listView1.SelectedItems[0].Text;//选中的项
                string fname = Path.GetDirectoryName(path);//获取选中文件所在的目录路径
                string bname = Path.GetFileName(path);//获取选中文件的文件名称(包含后缀如.txt)
                string kname = Path.GetExtension(path);//获取选中文件的后缀名称
                string OldStr = fname + @"" + bname;
                string NewStr = fname + @"" + textBox2.Text + kname;
                FileInfo fi = new FileInfo(OldStr);
                fi.MoveTo(NewStr);//将制定文件移动到新位置,并提供新的文件名
            }
        }

        public void Xupdate()
        {
            List<string> lt = new List<string>();
            if (listView1.SelectedItems != null)
            {
                for (int i = 0; i < listView1.SelectedItems.Count; i++)
                {
                    string sp = listView1.SelectedItems[i].Text;
                    lt.Add(sp);
                }
                for (int i = 0; i < lt.Count; i++)
                {
                    string path = lt[i];
                    string OldStr = Path.GetDirectoryName(path) + @"" + Path.GetFileName(path);
                    string NewStr = Path.GetDirectoryName(path) + @"" + textBox2.Text + i.ToString() + Path.GetExtension(path);
                    FileInfo fi = new FileInfo(OldStr);
                    fi.MoveTo(NewStr);//将制定文件移动到新位置,并提供新的文件名
                }
            }
        }

        public void Zupdate()
        {
            int i = 0;
            if (Directory.GetFiles(textBox1.Text) != null)
            {
                foreach (string file in Directory.GetFiles(textBox1.Text))//获取指定目录下的文件名称,不包括文件夹
                {
                    string OldStr = Path.GetDirectoryName(file) + @"" + Path.GetFileName(file);
                    string NewStr = Path.GetDirectoryName(file) + @"" + textBox2.Text + i.ToString() + Path.GetExtension(file);
                    //MessageBox.Show(Path.GetExtension(file));
                    //MessageBox.Show(NewStr);
                    FileInfo fi = new FileInfo(OldStr);
                    fi.MoveTo(NewStr);//将制定文件移动到新位置,并提供新的文件名
                    i++;
                }
            }

        }

        private void buttonZ_Click(object sender, EventArgs e)
        {
            Zupdate();
            meiju(listView2);
        }
    }
}

 

原文地址:https://www.cnblogs.com/happinesshappy/p/4575865.html