批量修改文件名

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 [email protected]"\"+ 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);
        }
    }
}
时间: 2024-10-25 15:22:47

批量修改文件名的相关文章

CMD命令实现批量修改文件名

cmd命令批量修改文件名:  (批量去掉下载电影后的前缀) @echo off for /f "delims=" %%a in ('dir /b/s/a-d [阳光电影www.ygdy8.com].*') do (     set "str=%%~nxa"     setlocal enabledelayedexpansion     ren "%%a" "!str:~20!"     endlocal ) 批量删除文件名特定

如何用python从文中获取文件名再用正则表达式批量修改文件名

第零步:问题的提出 我在网上购买了星火英语的六级晨读美文100篇(六级早已高分飘过,不过很喜欢这些文章,买来重新品味),但是发现其文章的命名都为01.txt或10.txt等.为了便于检索需要修改文件名称. 第一步:从文件中取出文件名. 我发现txt文件的第一行为文件名,格式为如:Passage 3. Three Passions I Have Lived for, 后面还有几个换行符.写下如下代码进行第一步修改: import os x = 1 while x < 101: if x < 10

Linux中批量修改文件名

有时候我们有一个目录下面的文件名都需要重新命令 如: 以下有十个学生完成的脚本,现在需要将finish改为ing [[email protected] test]# touch student_{01..10}_finish.sh [[email protected] test]# ls student_* student_01_finish.sh  student_03_finish.sh  student_05_f student_02_finish.sh  student_04_finis

shell脚本:批量修改文件名(删除文件名中字符)

shell脚本:批量修改文件名(文件名中添加字符) 上一篇写过批量修改文件名(文件名中添加字符),工作中还存在这样的需求,批量修改文件名,删除文件名中的某些字符: 举例如下:批量改名,删除文件名中多余字符 目录下文件名为如下,要求去掉_finished. stu_102999_1_finished.jpg stu_102999_2_finished.jpg stu_102999_3_finished.jpg stu_102999_4_finished.jpg stu_102999_5_finis

MFC批量修改文件名工具

1批量修改文件名描述 1.1功能描述 批量修改同一文件夹下文件名字,可以定义一个新名字,后面接着文件从0开始的序号. 1.2所需技术 CFileDialog,CString方法操作得到所需,rename 2批量修改文件名运行流程 3批量修改文件名详细设计 3.1添加文件按钮响应OnAddFile 按下"添加文件"按钮后,打开一个文件对话框objFileDlg.但是要设置objFileDlg最大文件名缓冲区.然后获得第一个文件的起始位置,依次把全部的文件完整名添加到列表控件中,这里列表控

Linux下批量修改文件名(rename)

原文地址: http://blog.csdn.net/sea_shore/article/details/6102437 1.rename命令批量修改文件名, 其实linux下可以使用别的办法来批量修改文件名, 不过rename实在太方便了 比如把所有的表为cdb1_* 修改为cdb_*的在本目录下只需要# rename 'cdb1' 'cdb' * 以前都是写个for循环来做...想想多傻啊, 呵呵 rename还有更多的功能, 建议man rename下 From:http://www.ha

控制台 批量修改文件名

static void Main(string[] args) { string text = @" __________________用于批量修改文件_______________________ 注意事项: 1.在CMD 中执行命令 2.修改的目标文件,是以.ts 结尾 3.一共4个参数, 4.如果参数中存在空格,则用 引号 包含参数 args[0] 参数 : 目录 args[1] 参数 : 文件名 args[2] 参数: 要保存的目标文件,从 begin 开始计数.如果找到++ args

C# 批量修改文件名

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

VBS自编写脚本。(实现批量修改文件名且在执行前,备份原有文件夹中的文件)

'=========================================================================='' VBScript Source File -- Created with SAPIEN Technologies PrimalScript 4.0'' NAME: '' AUTHOR: Microsoft , Microsoft' DATE : 2014/7/9'' COMMENT: '批量修改文件夹下对应的所有文件名''==========

使用Java中File类批量创建文件和批量修改文件名

批量创建文件 1 int cont = 1; 2 String s = "E:\\学习资料\\Java笔记-"; 3 while(cont<100){ 4 File f = new File(s+cont+".txt"); 5 if(!f.exists()){ 6 f.createNewFile(); 7 } 8 cont++; 9 } 批量修改文件名 1 File file = new File("E:\\学习资料"); 2 String