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

news2024/11/16 18:03:07

目录

一、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)
        {

        }
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

闲话 .NET(6):.NET Core 各个版本的特性

前言 之前我们聊了一下 .NET Core 有哪些优势&#xff0c;.NET Core 发展非常迅速&#xff0c;不过短短几年&#xff0c;.NET Core 已经发布 .NET 8 了&#xff0c;基本上保持了一年一个版本的速度&#xff0c;每个版本都有自己的独有特性&#xff0c;下面我们来简单的盘点一下…

从零实现Llama3中文版

1.前言 一个月前&#xff0c;Meta 发布了开源大模型 llama3 系列&#xff0c;在多个关键基准测试中优于业界 SOTA 模型&#xff0c;并在代码生成任务上全面领先。 此后&#xff0c;开发者们便开始了本地部署和实现&#xff0c;比如 llama3 的中文实现、llama3 的纯 NumPy 实现…

【机器学习300问】100、怎么理解卷积神经网络CNN中的池化操作?

一、什么是池化&#xff1f; 卷积神经网络&#xff08;CNN&#xff09;中的池化&#xff08;Pooling&#xff09;操作是一种下采样技术&#xff0c;其目的是减少数据的空间维度&#xff08;宽度和高度&#xff09;&#xff0c;同时保持最重要的特征并降低计算复杂度。池化操作不…

高速数据采集与传输(一):ADC08D500调研

前言&#xff1a;高速ADC数据采集的应用和开发&#xff0c;涉及的技术面非常的广泛&#xff0c;后续阶段博主将尝试以纯项目开发的形式做一次专题技术分享&#xff0c;将基于高速数据采集的相关内容进行一系列的技术文档更新。博主全凭兴趣在更新和总结&#xff0c;很难做到一直…

AI预测体彩排3采取888=3策略+和值012路一缩定乾坤测试5月26日预测第2弹

今天继续基于8883的大底进行测试&#xff0c;昨天的预测已成功命中&#xff01;今天继续测试&#xff0c;按照排三前面的规律&#xff0c;感觉要出对子了&#xff0c;所以本次预测不再杀对子&#xff0c;将采用杀一个和尾来代替。好了&#xff0c;直接上结果吧~ 首先&#xff0…

软考结束。有什么要说的

1. 竟然是机试&#xff0c;出乎我意料。是 考试机构觉得笔试成本高了么。这次的考试是机试&#xff0c;相比以往有所不一样。感言是不是以后都会在固定地点考试也说不准。 2. 遇到年轻人。 这次旁边的一个女同学第一次参加&#xff0c;还像我询问了一些关于软考的事。我是有…

14 vue学习:透传Attributes

Attributes 继承 “透传 attribute”指的是传递给一个组件&#xff0c;却没有被该组件声明为 [props]或 [emits]的 attribute 或者 v-on 事件监听器。最常见的例子就是 class、style 和 id。 当一个组件以单个元素为根作渲染时&#xff0c;透传的 attribute 会自动被添加到根元…

vcpkg环境配置

vcpkg 使用linux相关库&#xff0c;设置环境变量VCPKG_ROOT&#xff0c;设置cmake工具链$VCPKG_ROOT/scripts\buildsystems\vcpkg.cmake set VCPKG_DEFAULT_TRIPLETx64-windows .\vcpkg.exe install fftw3 freetype gettext glibmm gtkmm libjpeg-turbo libpng libxmlpp libs…

pytest框架用例命名规则详解

pytest 测试用例的命名规则是为了确保 pytest 能够正确地识别和执行测试用例。 以下是关于 pytest 测试用例命名规则的详细解释&#xff1a; 1 单个测试文件以‘test_’开头或者以‘_test’结尾 比如我们创建test_case1.py case2_test.py文件。 2 单个测试文件中&#xff0c…

PLC_博图系列☞R_TRIG:检测信号上升沿

PLC_博图系列☞R_TRIG&#xff1a;检测信号上升沿 文章目录 PLC_博图系列☞R_TRIG&#xff1a;检测信号上升沿背景介绍R_TRIG&#xff1a; 检测信号上升沿说明参数示例 关键字&#xff1a; PLC、 西门子、 博图、 Siemens 、 R_TRIG 背景介绍 这是一篇关于PLC编程的文章&a…

服务器安全审计: chkrootkit 和 rkhunter 详解

chkrootkit 和 rkhunter 是两个广泛使用的安全工具,用于检测系统是否被Rootkit或其他恶意软件感染。本文将详细说明这两个工具的使用方法及如何解释检测结果。 1. chkrootkit 1.1. 安装 chkrootkit 在CentOS上安装 chkrootkit 可以使用以下命令: yum install chkrootkit -…

SpringMVC:创建一个简单的SpringMVC框架S

目录 一、框架介绍 两个重要的xml文件 SpringMVC执行流程 二、Vscode搭建SpringMVC框架 1、maven创建webapp原型项目 2、pom.xml下添加springmvc的相关依赖 3、在web.xml配置 4、springmvc.xml的配置 5、编写Controller控制器类 6、 编写JSP界面 7、项目结构图 一…

$subcribe的使用

$subcribe的使用 只要是store都有$subscribe函数&#xff0c;是订阅的意思&#xff0c;可以监测到store中数据的变化 使用$subscribe函数可以实现刷新不丢失&#xff0c;将数据保存到浏览器的本地存储中&#xff0c;每次进入页面都使用localStorage的数据填充页面

springboot带颜色的日志输出

话不多说直接贴全部代码在作解释 <?xml version"1.0" encoding"utf-8"?> <configuration><property name"pattern" value"%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg %n"/><propert…

MySQL数据库基础:使用、架构、SQL语句、存储引擎

文章目录 什么是数据库CS模式 基本使用安装链接服务器服务器、数据库、表关系简单使用数据库在Linux下的体现 MySQL架构连接器层客户端层服务层存储引擎层物理存储层 SQL分类存储引擎 什么是数据库 mysql&#xff1a;数据库服务的客户端mysqld&#xff1a;数据库服务的服务器端…

LVS精益价值管理系统 LVS.Web.ashx SQL注入漏洞复现

0x01 产品简介 LVS精益价值管理系统是杭州吉拉科技有限公司研发的一款专注于企业精益化管理和价值流优化的解决方案。该系统通过集成先进的数据分析工具、可视化的价值流映射技术和灵活的流程改善机制,帮助企业实现高效、低耗、高质量的生产和服务。 0x02 漏洞概述 LVS精益…

【云原生】Kubernetes-----POD资源限制与探针机制

目录 引言 一、资源限制 &#xff08;一&#xff09;基本定义 &#xff08;二&#xff09;资源单位 1.CPU资源 2.内存资源 &#xff08;三&#xff09;请求与限制 &#xff08;四&#xff09;定义方式 1.编写yaml文件 2.查看资源情况 &#xff08;五&#xff09;资源…

【顶刊新文】nature plants|植物高度作为高山碳固存和生态系统对变暖响应的指标

文章简介 论文名称&#xff1a;Plant height as an indicator for alpine carbon sequestration and ecosystem response to warming&#xff08;植物高度作为高山碳固存和生态系统对变暖响应的指标&#xff09; 第一作者及单位&#xff1a;Quan Quan&#xff08;中国科学院地…

ERP产品一体化、智能化发展加速,智邦国际何以赢得先机?

近年&#xff0c;随着全球经济环境的剧烈变动&#xff0c;市场竞争的硝烟愈发浓烈。受大环境影响&#xff0c;百行千企在发展过程中&#xff0c;力求降低成本、增长效率&#xff0c;以增加自身竞争力。需求与市场并存&#xff0c;为激发更多潜在力量&#xff0c;越来越多的企业…

构建高效的在线培训机构CRM应用架构实践

在当今数字化时代&#xff0c;在线培训已成为教育行业的重要趋势之一。为了提供更好的学习体验和管理服务&#xff0c;在线培训机构需要构建高效的CRM&#xff08;Customer Relationship Management&#xff09;应用架构。本文将探讨在线培训机构CRM应用架构的设计与实践。 一、…