转自:https://jhrs.com/2022/45307.html
C#重命名文件夹
通过C#代码对文件夹进行重命名也是常见功能或需求,而在网上搜索到的常见代码都是通过先创建新目录,然后移动原来的文件到新目录的方式,大概所能见到的代码如下所示:
//步骤1,先创建新目录,当前步骤非必须 Directory.CreateDirectory(destinationDir); //步骤2,找到文件,并移动 FileInfo file = new FileInfo(srcFileName); file.MoveTo(destFileName);
以前只是常见的示例代码,事实上都是需要进行文件移动操作,那么有没有像我们使用鼠标右键,选中文件夹直接重命名的方法呢?答案是有的,还是利用FileSystem类提供的方法,如下:
//这个就是重命名目录的方法,https://jhrs.com(江湖人士,国外网赚)让你回答,是不是很简单呢? FileSystem.RenameDirectory(sourceDir, destDir);
C#重命名文件
重命名文件的需求经常出现在上传功能时,用户上传的文件服务器端需要对它进行重命名,通常会写出网上常见的类似代码:
File.Move(),File.Copy() 版本的:
string src = @"原文件路径:C:\jhrs\com\old.file"; string dest = @"新文件路径:C:\jhrs\com\new.file"; try { File.Move(src, dest); if (!File.Exists(src)) { Console.WriteLine("jhrs.com提示:文件重命名成功."); } } catch (IOException e) { Console.WriteLine("jhrs.com提示:{0}", e.ToString()); } //或者通过复制文件方式 File.Copy(src, dest, true); File.Delete(src);
有了上面的知识,我们可以类推得出,同样的我们可以使用FileSystem提供的方法对文件进行重命名了。
//这个就是重命名文件的方法,https://jhrs.com(江湖人士,国外网赚)让你回答,是不是很简单呢? FileSystem.RenameFile(oldFile, newFile);
C#移动文件
文件操作常见功能就是移动文件,微软官网文档也给了示例文档,这是官网链接:
其它的代码这里就暂不举例了。直接上答案吧。
//这个就是移动文件的方法,https://jhrs.com(江湖人士,国外网赚)让你回答,是不是很简单呢? FileSystem.MoveFile(sourceFileName,destinationFileName)
C#移动目录
当你通过代码移动目录时,如果被移动的目录文件非常的大,再通过递归遍历/循环遍历目录里面的文件进行移动是非常低效的做法。FileSystem提供了现成的方法,你可以调用它来移动目录,经测试效率非常高。
//这个就是移动目录的方法,https://jhrs.com(江湖人士,国外网赚)让你回答,是不是很简单呢? FileSystem.MoveDirectory(sourceDirectoryName, destinationDirectoryName)
最后说一下,你也可以调用 FileSystem.DeleteDirectory 方法删除目录,其它的方法,自己在VS里面看一下提示吧,基本上从命名我们就知道它实现的是什么功能。需要注意的是,被删除的文件或者目录如果有只读属性需要给它去掉。
/// <summary> /// 递归去除文件,jhrs.com 首发,目录的只读属性 /// </summary> /// <param name="dir"></param> private void RemoveDirReadOnley(DirectoryInfo dir) { dir.Attributes &= ~FileAttributes.ReadOnly; var files = dir.GetFiles(); Parallel.ForEach(files, (f) => { f.Attributes &= ~FileAttributes.ReadOnly; }); var dires = dir.GetDirectories(); Parallel.ForEach(dires, (f) => { f.Attributes &= ~FileAttributes.ReadOnly; files = f.GetFiles(); Parallel.ForEach(files, (m) => { m.Attributes &= ~FileAttributes.ReadOnly; }); RemoveDirReadOnley(f); }); }
结论
C# 中的细节还是有点多,使用C#进行文件操作是很常见的功能,当有大量的文件,目录需要移动,重命名,复制时,需要考虑一下效率的问题;FileSystem这个类提供的静态方法基本上涵盖了文件的增、删、改、移的操作,我们再也不需要去写一些繁杂的代码来进行文件操作了,直接用最简单的方法吧。
标签:重命名,文件,jhrs,C#,文件夹,FileSystem,com From: https://www.cnblogs.com/z5337/p/18286453