首页 > 编程语言 >C# 批量复制文件到新路径并修改文件名

C# 批量复制文件到新路径并修改文件名

时间:2023-06-08 17:24:30浏览次数:40  
标签:newpath Console 批量 文件名 C# item oldpath WriteLine var

 1 static void Main(string[] args)
 2         {
 3             Console.WriteLine("将去除前缀字符:[normal-]和后缀");
 4         
 5             Console.WriteLine("请输入需要新文件存放夹路径:");
 6             string newpath = Console.ReadLine();
 7         chek:
 8             Console.WriteLine("请输入需要修改文件夹路径:");
 9             string oldpath = Console.ReadLine();
10 
11             if (oldpath != null)
12             {
13                 if (!System.IO.Directory.Exists(oldpath))
14                 {
15                     Console.WriteLine("文件夹不存在!");
16                     goto chek;
17                 }
18                 var paths = oldpath.Split('\\');
19                 var time = Convert.ToDateTime(paths[paths.Length - 1]);
20                 var pathtime = newpath + "\\" + time.Year.ToString() + "\\" + time.Month.ToString() + "\\" + time.Day.ToString();
21 
22                 if (!System.IO.Directory.Exists(pathtime))
23                 {
24                     System.IO.Directory.CreateDirectory(pathtime);
25                 }
26 
27                 DirectoryInfo root = new DirectoryInfo(oldpath);
28                 FileInfo[] files = root.GetFiles();
29                 foreach (var item in files)
30                 {
31                     //删除后缀
32                     var name = item.Name.Replace(item.Extension, "");
33                     //删除指定前缀
34                     var newname = name.Replace("normal-", "");
35                     Console.WriteLine(item.Name + ">>" + newname);
36                     //复制并修改文件名
37                     //需要注意文件重复会报错
38                     newpath = pathtime + "\\" + newname;
39                     if (!File.Exists(newpath))
40                     {
41                         File.Copy(item.FullName, newpath);
42                     }
43                     else
44                     {
45                         Console.WriteLine(newname + "该文件重复!");
46                     }
47                 }
48 
49             }
50 
51             goto chek;
52         }

 

标签:newpath,Console,批量,文件名,C#,item,oldpath,WriteLine,var
From: https://www.cnblogs.com/weilphome/p/17467133.html

相关文章

  • 什么是DS(Dedicated Server)
    本片博客参考:UE5DedicatedServer专用服务器与网络同步因为我之前是参与Web后端开发的,所以对游戏的服务器的理解还停留在上学时,也就是客户端不参与实际的运算,所有的运算与数据的下发都由服务器去控制,然后前后端分离。首先我们需要明确一个认知—UE5的客户端代码和服务器代码是......
  • C++模板
    模板分为函数模板和类模板函数模板模板的语法建立一个通用函数,其函数返回值类型和形参类型可以不具体制定1template<typenameT>2voidmySwap(T&a,T&b){3Ttemp=a;4a=b;5b=temp;6}7intmain(){8inta=10;9intb......
  • vscode对比不同路径下的两个文件
    一、模拟环境 test目录下有两个文件夹,a和b 里面分别放着aa.txt 和bb.txt绝对路径:~/test/a/aa.txt~/test/b/bb.txt 二、命令行启动vscode对比$code--diffa/aa.txtb/bb.txt 三、使用vscode命令面板1.先用命令打开一个文件(模拟已经在查看的文件......
  • macOS 14 Sonoma(苹果最新系统)测试版
    macOS14Sonoma下载2023苹果全球开发者大会上,苹果宣布macOS下版本定名为Sonoma。此次升级,让Mac体验更加出色。比如提供了全新升级的小组件功能、独有的Mac游戏功能、远程演讲模式以及针对Safari浏览器新增了多种新功能。 macOS14系统新增小组件功能在此之前,Mac的......
  • Docker(八):容器互联之自定义网络
    在Docker中每一个容器都是一个独立的个体,相互之间不能进行信息的传输。这里学习一种让容器可以相互联系的方法——自定义网络。一、创建自定义网络命令:dockernetworkcreate--driver网络模式--subnet子网地址--gateway网关网络名称测试:--driverbridge 这里是以创建的......
  • DSP网课笔记 ξ0_introduction
    网课链接(是一个开设给研究生的课程)离散时间信号处理吴炳飞概论课程目标是建立基本的DSP观念DSP的研究对象:信号要将模拟信号转换为数字信号,必须知道所研究信号的特性(对数字的敏感)......
  • k8s~RKE的方式升级Rancher集群
    kubectl安装在主机或者远程访问的笔记本上安装kubectl命令行工具rancher-cluster.yml(RKE配置文件)通过RKE创建kubernetes集群,需要预先设置rancher-cluster.yml配置文件,通过这个配置文件安装kubernetes集群,同时可以指定kubernetes的版本。RKE安装kubernetes集群后,会在RKE二进......
  • el-api包冲突,java.lang.LinkageError: loader constraints violated when linking ja
    java.lang.LinkageError:loaderconstraintsviolatedwhenlinkingjavax/el/ExpressionFactoryclass严重:Servlet.service()forservletjspthrewexceptionjava.lang.LinkageError:loaderconstraintsviolatedwhenlinkingjavax/el/ExpressionFactoryclassat......
  • 下载量破 15000!龙蜥社区登陆阿里云 ACR 制品中心 TOP5 榜单
    2023年1月,阿里云容器镜像服务ACR正式推出“云原生制品中心”,为容器开发者免费提供了来源于阿里云官方、龙蜥社区等贡献方的安全可信容器基础镜像。截止今天,本月“最受欢迎镜像榜单”新鲜出炉,龙蜥社区Dragonwell排行第3名,AnolisOS位列第5!总下载量破15000!龙蜥云原生容......
  • java reflection Java 反射,动态绑定
    javareflection,java反射,动态绑定                                       Reflection是Java程序开发语言的特征之一,它允许运行中的Java程序对自身进行检查,或者说“自审”,并能直接操作程序的内部属性。例如,使用它能获得Java类中......