C#文件及文件夹重命名

1、文件夹重命名

//sourceDirectory 是文件夹的路径,test2 是要重命名的名称
string sourceDirectory = @"C:\test";
Microsoft.VisualBasic.FileIO.FileSystem.RenameDirectory(sourceDirectory, "test2");

2、文件重命名.

//sourceFile 是文件完整路径,新的名称要包含文件后缀名
string sourceFile = @"C:\test2\test.txt";
Microsoft.VisualBasic.FileIO.FileSystem.RenameFile(sourceFile, "改变了.txt");

3、获取某个文件夹及相关属性

//文件夹路径
string directoryPath = @"C:\test";
//创建文件夹对象,该对象可以点出各种属性
DirectoryInfo directory = new DirectoryInfo(directoryPath );

4、获取某个文件及相关属性

//文件完整路径
string filePath = @"C:\test2\test.txt";
//创建文件对象,该对象包含各种属性
FileInfo file = new FileInfo(filePath);

5、获取某个文件夹下面的子目录或者子文件夹

string directoryPath = @"C:\test";
DirectoryInfo directory = new DirectoryInfo(directoryPath );
//获取directory下的所有文件,不包含子文件
var getFiles = directory.GetFiles();
//获取directory下的所有文件夹,不包含子文件夹
var getDirectorys=directory.GetDirectories();
//获取directory下的所有文件夹和文件,不包含子目录
var getFileAndDirectory= directory.GetFileSystemInfos();

6、FileInfo类常用的属性和方法

DirectoryInfo类是System.IO命名空间的一部分。它用于创建,删除和移动目录。它提供了执行与目录和子目录相关的操作的方法。这是一个密封的类,所以不能继承它。
DirectoryInfo类提供了下面列出的构造函数,方法和属性。

构造函数 描述
DirectoryInfo(String) 它用于在指定的路径上初始化DirectoryInfo类的新实例。

DirectoryInfo类的属性。

属性 描述
Attributes 它用于获取或设置当前文件或目录的属性。
CreationTime 它用于获取或设置当前文件或目录的创建时间。
CreationTimeUtc 它用于在协调的世界时间(UTC)中获取或设置创建时间。
Exists 它用于获取一个值,指示目录是否存在。
Extension 它用于获取表示文件扩展部分的字符串。
FullName 它用于获取目录的完整路径。
LastAccessTime 它用于获取或设置上次访问当前文件或目录的时间。
LastAccessTimeUtc 用于在当前文件或目录被上次访问的协调世界时间(UTC)中获取或设置时间。
LastWriteTime 它用于获取或设置当前文件或目录最后写入的时间。
LastWriteTimeUtc 当最后一次写入当前文件或目录时,它用于在协调世界时(UTC)中获取或设置时间。
Name 它用于获取此DirectoryInfo实例的名称。
Parent 它用于获取指定子目录的父目录。
Root 它用于获取目录的根部分。

DirectoryInfo类中定义的方法

方法 描述
Create() 它用于创建一个目录。
Create(DirectorySecurity) 它用于使用DirectorySecurity对象创建目录。
CreateObjRef(Type) 它用于创建一个对象,其中包含生成用于与远程对象通信的代理所需的所有相关信息。
CreateSubdirectory(String) 它用于在指定的路径上创建一个子目录或子目录。
CreateSubdirectory(String,DirectorySecurity) 它用于在具有指定安全性的指定路径上创建子目录或子目录。
Delete() 如果DirectoryInfo为空,则用于删除DirectoryInfo。
Delete(Boolean) 它用于删除DirectoryInfo的实例,指定是否删除子目录和文件。
EnumerateDirectories() 它返回当前目录中可用的目录信息集合。
EnumerateFiles() 它在当前目录中返回无数的文件信息集合。
GetAccessControl() 它用于获取一个DirectorySecurity对象,该对象封装了目录的访问控制列表(ACL)条目。
GetDirectories() 它返回当前目录的子目录。
GetFiles() 它从当前目录返回文件列表。
GetType() 它用于获取当前实例的类型。
MoveTo(String) 它用于将DirectoryInfo实例及其内容移动到新路径。
Refresh() 它用于刷新对象的状态。
SetAccessControl(DirectorySecurity) 它用于设置DirectorySecurity对象描述的访问控制列表(ACL)条目。
ToString() 它返回用户传递的原始路径。

7、FileInfo类常用的属性和方法

提供创建、复制、删除、移动和打开文件的属性和实例方法
在 FileInfo 类中提供了一个构造方法,语法形式如下。

FileInfo(string fileName)

FileInfo 类中常用的属性和方法

属性或方法 描述
Directory 只读属性,获取父目录的实例
DirectoryName 只读属性,获取表示目录的完整路径的字符串
Exists 只读属性,获取指定的文件是否存在,若存在返回 True,否则返回 False
IsReadOnly 属性,获取或设置指定的文件是否为只读的
Length 只读属性,获取文件的大小
Name 只读属性,获取文件的名称
Filelnfo CopyTo(string destFileName) 将现有文件复制到新文件,不允许覆盖现有文件
Filelnfo CopyTo(string destFileName, bool overwrite) 将现有文件复制到新文件,允许覆盖现有文件
FileStream Create() 创建文件
void Delete() 删除文件
void MoveTo(string destFileName) 将指定文件移到新位置,提供要指定新文件名的选项
Filelnfo Replace(string destinationFileName, string destinationBackupFileName) 使用当前文件对象替换指定文件的内容,先删除原始文件, 再创建被替换文件的备份

8、File类、Directory类、FileInfo、DirectoryInfo类的区别

1)相同点:
File和FileInfo都可以对文件进行相关操作,Directory和DirectoryInfo都可以对文件夹进行相关操作。
2)不同点:
File,Directory 是静态类。如果只要执行一个操作,File,Directory性能更高。
File,Directory类的静态方法对所有方法都执行安全检查,因此如果打算多次重用某个对象,可以考虑改用FileInfo,DirectoryInfo类中相应方法(他不需要安全检查)。
FileInfo,DirectoryInfo类没有静态方法,该类的方法仅可以用于实例化的对象。不能被继承。
如果要在文件上执行几种操作,则实例化FileInfo,DirectoryInfo对象使用其方法就会更好一些。