zoukankan      html  css  js  c++  java
  • 批量修改文件名

    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);
            }
        }
    }

     

  • 相关阅读:
    sqlserver查询表字段
    Lombok
    属性配置
    计时器与启动加载器
    banner
    互斥锁和条件变量
    System V消息队列
    命令行参数的处理函数getopt
    posix 消息队列
    不定参数
  • 原文地址:https://www.cnblogs.com/happinesshappy/p/4575865.html
Copyright © 2011-2022 走看看