C#对文件进行批量重命名或者对某个单独的文件进行改名

目录

一、FolderBrowserDialog

二、OpenFileDialog

三、Path

四、ui设计

五、代码部分 


一、FolderBrowserDialog 

FolderBrowserDialog是一个用于选择文件夹的对话框控件,可以在windows Forms应用程序中使用。使用它可以让用户选择一个文件夹,并返回所选文件夹的路径。可以通过设置一些属性来自定义对话框的外观和行为,例如RootFolder属性可以设置对话框的根文件夹,SelectedPath属性可以设置对话框的默认选中路径。

属性介绍

        1. (Name)      

                控件的对象标识符ID

        2. Description

                文件夹的提示信息

        3. RootFolder

                打开文件夹浏览对话框时的根目录

        4. SelectedPath

                文件夹浏览对话框选择的绝对路径

        5. ShowNewFolderButton

                在对话框中包含新建文件夹按钮

二、OpenFileDialog

OpenFileDialog控件用于创建一个打开文件对话框,允许用户选择文件。OpenFileDialog提供了一种简单的方式来让用户选择一个或多个文件,并获取用户所选文件的路径。

        OpenFileDialog是打开文件对话框的意思,即在窗体设计中,如果需要打开本地文件,就需要用到该类。

属性                                    说明
InitialDirectory                  对话框的初始目录
Filter                       获取或设置当前文件名筛选器字符串,例如,“文本文件(.txt)|.txt|所有文件(.)||.”
FilterIndex                 在对话框中选择的文件筛选器的索引,如果选第一项就设为1
RestoreDirectory       控制对话框在关闭之前是否恢复当前目录
FileName:               第一个在对话框中显示的文件或最后一个选取的文件
Title                            将显示在对话框标题栏中的字符
AddExtension            是否自动添加默认扩展名
CheckPathExists       在对话框返回之前,检查指定路径是否存在
DefaultExt                  默认扩展名
DereferenceLinks      在从对话框返回前是否取消引用快捷方式

三、Path

Path类位于System.IO命名空间中,它提供了静态方法,用于处理文件和目录路径。这些方法可以用来解析、格式化和转换文件和目录路径。由于Path类是静态的,因此我们不需要创建它的实例就可以使用它的方法。

Path类的基本功能与重要特性:

Path类位于System.IO命名空间中,提供了静态方法来处理文件和目录路径。这些方法可以用来解析、格式化和转换文件和目录路径。以下是Path类的一些重要特性:

路径解析:将相对路径转换为绝对路径,或者提取路径的某一部分,如文件名或扩展名。
路径组合:将两个路径片段组合成一个完整的路径。
路径根目录获取:获取指定路径的根目录部分。
跨平台支持:Path类在不同的操作系统上表现一致,使得路径操作在跨平台应用中变得简单。

四、ui设计

说明:点击上传文件夹路径的textbox1控件,将获得的文件夹绝对路径放到textbox1.text中,点击上传控件后,将获取的路径中的文件内容显示到textbox2控件.text中,在textbox3控件中输入要修改的名称,点击“修改文件夹中的全部内容”按键,既能对文件夹中的全部文件进行重命名,并且在名称后面加上数字编号。点击textbox4控件,获得要对某个单独的文件进行修改名称的文件的绝对路径,在textbox3中输入要修改的名称,点击单独修改某一个文件的按钮,即能够对某个文件进行单独修改名称的操作。

控件名称作用事件作用
textBox1获取要整体修改名称的文件夹xuanze_click点击控件,获取选择的文件夹的绝对路径
button1上传按钮shang_click点击一下将选择的文件夹内的文件显示在textBox2中
textBox3获取要修改的名称xiu_click点击一下,对文件夹中文件进行全部修改
textBox4获取要修改的文件的绝对路径button3_Click点击一下对单独的某个文件名称进行修改

五、代码部分 

using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace 对文件进行重命名
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void xuanze_click(object sender, EventArgs e)
        {
            FolderBrowserDialog dilog = new FolderBrowserDialog();
            string str = @"F:";
            dilog.Description = "请选择文件夹";
                       
            if (dilog.ShowDialog() == DialogResult.OK)
            {                
                textBox1.Text = dilog.SelectedPath;
            }
        }

        private void shang_click(object sender, EventArgs e)
        {
            if(textBox1.Text=="")
            {
                MessageBox.Show("路径不能为空");
            }
            else
            {
                string path = textBox1.Text;
                DirectoryInfo root = new DirectoryInfo(path);
                FileInfo[] files = root.GetFiles();
                List<FileInfo> listFiles = files.ToList();                

                for (int i = 0; i < listFiles.Count; i++)
                {
                    //textBox2.AppendText(listFiles[i].FullName);
                    //textBox2.AppendText("\r\n");
                    //textBox2.AppendText(Environment.NewLine);
                    textBox2.AppendText(listFiles[i].Name);
                    textBox2.AppendText("\r\n");
                }

            }
        }

        private void xiu_click(object sender, EventArgs e)
        {
            if (textBox3.Text == "")
            {
                MessageBox.Show("修改内容不能为空");
            }
            else
            {
                string path = textBox1.Text;
                DirectoryInfo root = new DirectoryInfo(path);
                FileInfo[] files = root.GetFiles();
                List<FileInfo> listFiles = files.ToList();
                for (int i = 0; i < listFiles.Count; i++)
                {
                    string srcFileName = listFiles[i].FullName;
                    string destFileName = listFiles[i].Directory.FullName + "\\" + textBox3.Text + string.Format("({0})", i + 1) + listFiles[i].Extension;
                    File.Move(srcFileName, destFileName);
                }                
                MessageBox.Show("已经完成了");
                textBox2.Text = "";
                OpenFileDialog Openfile = new OpenFileDialog();
                Openfile.InitialDirectory = path;
                Openfile.ShowDialog();
            }
        }

        private void xz1_click(object sender, EventArgs e)
        {
            OpenFileDialog Openfile = new OpenFileDialog();
            string str = @"F:";
            Openfile.InitialDirectory = str;
            Openfile.Title = "请选择文件路径";
            if (Openfile.ShowDialog() == DialogResult.OK)
            {
                textBox4.Text = Openfile.FileName;
            }
        }

        private void button3_Click(object sender, EventArgs e)
        {
            if (textBox3.Text == "")
            {
                MessageBox.Show("修改内容不能为空");
            }
            else
            {
                string path = textBox4.Text;
                string srcFileName = path;
                string destFileName = Path.GetDirectoryName(path) + "\\" + textBox3.Text + Path.GetExtension(path);
                File.Move(srcFileName, destFileName);                
                textBox4.Text = "";
                textBox3.Text = "";
                MessageBox.Show("已经完成了");
            }
        }           

        private string aa()
        {
            OpenFileDialog Openfile = new OpenFileDialog();
            string str = @"F:";
            
            Openfile.InitialDirectory = str;
            Openfile.Title = "请选择文件路径";
            if (Openfile.ShowDialog() == DialogResult.OK)
            {
               return Openfile.FileName;
            }
            else
            {
                return "";
            }
        }

        private void textBox4_TextChanged(object sender, EventArgs e)
        {

        }
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/646254.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

arping 一键检测网络设备连通性(KALI工具系列二)

目录 1、KALI LINUX简介 2、arping工具简介 3、在KALI中使用arping 3.1 目标主机IP&#xff08;win&#xff09; 3.2 KALI的IP 4、操作示例 4.1 IP测试 4.2 ARP测试 4.3 根据存活情况返回 5、总结 1、KALI LINUX简介 Kali Linux 是一个功能强大、多才多艺的 Linux 发…

QGIS开发笔记(二):Windows安装版二次开发环境搭建(上):安装OSGeo4W运行依赖其Qt的基础环境Demo

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/139136356 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV…

如何利用线程池实现互联网验证码保护服务

如何利用线程池实现互联网验证码保护服务 1、业务背景与实现思路2、代码实操1、业务背景与实现思路 首先介绍一下业务背景,假设我们的系统是一个短视频播放网站,每个新加入的用户都需要注册账号并绑定手机号。为了验证用户手机的正确性,我们的系统会发送一条验证码到用户注…

上下文视觉提示实现zero-shot分割检测及多visual-prompt改造

文章目录 一、Closed-Set VS Open-set二、DINOv2.1 论文和代码2.2 内容2.3 安装部署2.4 使用效果 三、多visual prompt 改造3.1 获取示例图mask3.2 修改函数参数3.3 推理代码3.4 效果的提升&#xff01; 四、总结 本文主要介绍visual prompt模型DINOv&#xff0c;该模型可输入八…

Linux基础(八):计算机基础概论

本篇博客简单介绍计算机的基础知识&#xff0c;为后续学习做个铺垫。 目录 一、计算机的基本组成 1.1 计算机组成五大部件 1.1.1 运算器&#xff08;Arithmetic Logic Unit&#xff0c;ALU&#xff09; 1.1.2控制器 &#xff08;Control Unit&#xff0c;CU&#xff09; …

【网络协议】应用层协议--HTTP

文章目录 一、HTTP是什么&#xff1f;二、HTTP协议工作过程三、HTTP协议1. fiddler2. Fiddler抓包的原理3. 代理服务器是什么?4. HTTP协议格式1.1 请求1.2 响应 四、认识HTTP的请求1.认识HTTP请求的方法2.认识请求头&#xff08;header&#xff09;3.认识URL3.1 URL是什么&…

uni-app实现页面之间的跳转传参(八)

界面之间的参数传递在 开发中经常会用到,这节主要将一下uni-app开发应用是的传参情况。如下图所示,我的一级界面将点检分成三类:日点检、周点检和年保养;在点击相应的会导航到相应的功能。 在uni-app中常用的方法有uni.navigateTo(OBJECT)、uni.redirectTo(OBJECT);简单的…

详解 Scala 的集合类型

一、集合简介 1. 类型 序列 Seq&#xff1a;类似于 Java 中的 List 接口集 Set&#xff1a;类似于 Java 中的 Set 接口映射 Map&#xff1a;类似于 Java 中的 Map 接口所有的集合都扩展自 Iterable 特质 2. 不可变集合 位于 scala.collection.immutable 包&#xff0c;指该集…

基于docxtpl的模板生成Word

docxtpl是一个用于生成Microsoft Word文档的模板引擎库。它结合了docx模块和Jinja2模板引擎&#xff0c;使用户能够使用Microsoft Word模板文件并在其中填充动态数据。这个库提供了一种方便的方式来生成个性化的Word文档&#xff0c;并支持条件语句、循环语句和变量等控制结构&…

Spring Boot集成testcontainers快速入门Demo

1.什么是testcontainers&#xff1f; Testcontainers 是一个用于创建临时 Docker 容器进行单元测试的 Java 库。当我们想要避免使用实际服务器进行测试时&#xff0c;它非常有用。&#xff0c;官网介绍称支持50多种组件。​ 应用场景 数据访问层集成测试&#xff1a; 使用My…

HTTP交互导致ECONNABORTED的原因之一

背景&#xff1a; 本次记录的&#xff0c;是一次使用HTTP交互过程中遇到的问题&#xff0c;问题不大&#xff0c;就是给题目上这个报错补充一种可能的解决方案。 程序大致流程&#xff1a; 1. 设备向服务器A请求信息 2. 拿到回复记录下回复内容中的数据包下载地址等信息 3…

2024GDCPC广东省赛记录

比赛流程体验&#xff0c;依托&#xff0c;开赛几分钟了&#xff0c;选手还卡在门外无法入场&#xff0c;也没给延时&#xff0c;说好的桌上会发三支笔&#xff0c;于是我们就没准备&#xff0c;要了三次笔&#xff0c;终于在一小时后拿到了&#x1f605; 比赛题目体验&#xf…

PyTorch深度学习快速入门——P1-P13

环境配置 Anaconda&#xff0c;创建conda create -n pytorch python3.12&#xff0c;使用conda activate pytorch切换到环境。安装pytorch&#xff0c;conda install pytorch torchvision torchaudio pytorch-cuda11.8 -c pytorch -c nvidia&#xff0c;使用import torch&…

力扣496. 下一个更大元素 I

Problem: 496. 下一个更大元素 I 文章目录 题目描述思路复杂度Code 题目描述 思路 因为题目说nums1是nums2的子集&#xff0c;那么我们先把nums2中每个元素的下一个更大元素算出来存到一个映射里&#xff0c;然后再让nums1中的元素去查表即可 复杂度 时间复杂度: O ( n 1 n 2…

宁夏银川、山东济南、中国最厉害的改名大师的老师颜廷利教授的前沿思想观点

在当代社会&#xff0c;一个响亮的声音穿越了传统的迷雾&#xff0c;它来自东方哲学的殿堂&#xff0c;由一位现代学者颜廷利教授所发出。他的话语&#xff0c;如同一股清泉&#xff0c;在混沌的世界里激荡着思考的波澜&#xff1a;"有‘智’不在年高&#xff0c;无‘智’…

福昕PDF编辑器自定义快捷方式

你是否为用不惯福昕PDF编辑器自带的快捷键而发愁&#xff1f;今天&#xff0c;我和大家分享一下如何设置自己想要的快捷键方式&#xff0c;希望能对大家有帮助。 步骤一&#xff1a;打开福昕PDF编辑&#xff0c;并找到更多命令 步骤二&#xff1a;切换到键盘一栏&#xff0c;并…

Stream流常用操作

一、中间操作 中间操作是返回一个新的流&#xff0c;并在返回的流中包含所有之前的操作结果。它们总是延迟计算&#xff0c;这意味着它们只会在终止操作时执行&#xff0c;这样可以最大限度地优化资源使用。 1. filter(过滤) filter()方法接受一个谓词&#xff08;一个返回boo…

栈和队列的基本见解

1.栈 1.1栈的基本概念和结构&#xff1a; 栈是一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底。栈中的数据元素遵守后进先出的原则。 压栈&#xff1a;栈的插入操作叫做进栈/压栈…

【java程序设计期末复习】chapter2 基本数据类型与数组

基本数据类型与数组 一&#xff0c;标识符和关键字 标识符 定义 用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符&#xff0c;简单地说&#xff0c;标识符就是一个名字 。 性质 &#xff08;1&#xff09;标识符由字母、下划线、美元符号和…

cocos creator做圆形进度条

效果图&#xff1a; 我们在开发过程中经常要用到圆形进度条&#xff0c;例如技能CD 原文链接 之前写了一篇cocos2dx-lua_ProgressTimer创建扇形进度条,这里简单记录下在cocosCreator中如何制作。 具体方法 cocosCreator做起来比2dx还是要简单很多&#xff0c;首先给节点添加p…