C# - 文件操作类

时间:2023-03-09 00:10:52
C# - 文件操作类

除了封装数据流的类 System.IO命名空间中还提供了可以操作文件和目录的类

Directory类

ns:System.IO

Level:Object=>Directory

表示目录的类 用于创建、移动、拷贝目录等操作

Directory类的静态方法

CreateDirectory方法

根据参数指定的路径创建对应的目录 所有不存在的目录都会被创建

Delete方法

删除参数指定的目录 如果该目录下不为空(有后代目录或文件)则会抛出异常 解决办法是提供参数2 指定是否删除它和它所包含的所有后代目录

Exists方法

目录是否存在

GetCreationTime方法

获取目录创建时间

GetCurrentDirectory方法

获取当前正在执行的应用程序所在的目录

GetDirectories方法

获取指定目录的所有子目录路径的字符表示 返回一个字符串数组 参数2可以提供搜索条件 如A* 则在当前目录下查找其子目录以A开头的名称的任意目录

GetFiles方法

获取指定目录中的文件的路径的字符表示 返回一个字符串数组 参数2可以提供搜索条件 如A* 则在当前目录下查找包含的文件以A开头的名称的任意文件

GetFileSystemEntries方法

GetDirectories和GetFiles方法的结合体 可同时获取到指定目录的子目录的路径的字符表示和指定目录的文件路径的字符表示

GetLastAccessTime方法

获取目录最近一次被访问的时间

GetLastWriteTime方法

获取目录最近一次被修改的时间

GetLogicalDrives方法

获取计算机所有逻辑驱动器的名称 返回一个字符串数组

GetParent方法

获取指定目录的父目录 返回一个DirectoryInfo对象表示父目录

GetDirectoryRoot方法

获取指定目录的完全限定名的路径

Move方法

将参数1指定的目录移动到参数2指定的地址上 如果参数2地址上已存在相同名称的目录则会抛出异常

SetCreationTime方法

设置目录的创建时间

SetCurrentDirectory方法

将当前正在执行的应用程序的工作目录设置为参数指定的目录

SetLastAccessTime方法

设置目录最近一次被访问的时间

SetLastWriteTime方法

设置目录最近一次被修改的时间

ToString方法

返回目录路径的字符表示

File类

ns:System.IO

Level:Object=>File

表示文件的类 用于创建、移动、拷贝文件等操作

File类的静态方法

Copy方法

将参数1指定的文件拷贝到参数2指定的路径中 如果参数2的地址存在相同名称的文件则会抛出异常 可以通过参数3指定是否覆盖目标路径上存在的相同名称的文件

Create方法

创建文件 如果参数指定的地址已经存在同名文件则会自动覆盖 返回一个FileStream对象

CreateText方法

创建并打开文件

Delete方法

删除文件

GetAttributes方法

获取文件的属性信息 返回一个FileAttributes集合对象

GetCreationTime方法

获取文件创建时间

GetLastAccessTime方法

获取文件最近一次被访问的时间

GetLastWriteTime方法

获取文件最近一次被修改的时间

Move方法

将文件移动到参数2指定的路径上 如果文件存在 将抛出异常

 File.Move(@"D:\学校\新建文本文档.txt", @"D:\新建文本文档.txt");

AppendText方法

返回一个StreamWriter实例 用于向文件写入数据 如果文件不存在则会自动创建该文件并自动将文件关联到返回的StreamWriter上

Open方法

打开已经存在的文件 返回一个FileStream对象 如果文件不存在则会抛出异常 此方法具有多个重载版本 它的参数如下

path:文件路径

mode:一个FileMode的枚举值 指定了操作系统应该如何打开一个文件的方式

access:一个FileAccess的枚举值 指定了文件的属性 此枚举可以与按位运算符一起使用 以表明文件的多个属性

share:一个FileShare的枚举值 指定了多个进程之间是否能同时访问或共享同一文件

OpenRead方法

打开文件 以便进行读操作 返回一个FileStream对象

OpenText方法

打开以UTF-8编码的文件 以便进行读取 返回一个StreamReader对象

OpenWrite方法

打开文件 以便进行写操作 返回一个FileStream对象

ReadAllText方法

读取文件所有数据

ReadAllBytes方法

按字节读取文件所有数据

Write方法

写数据到文件

WriteAllLine

写入一行数据到文件

SetAttributes方法

设置文件的属性 通过参数2的FileAttributes枚举来指定文件属性

SetCreationTime方法

设置文件的创建时间

SetLastAccessTime方法

设置文件最近一次被访问的时间

SetLastWriteTime方法

设置文件最近一次被修改的时间

ToString方法

返回文件路径的字符表示

FileSystemInfo类

ns:System.IO

Level:Object=>MarshalByRefObject=>FileSystemInfo

此类是表示目录的类DirectoryInfo和表示文件的类FileInfo的基类 它提供了其派生类通用的一些字段、属性和方法

FileSystemInfo类的属性

Attributes属性

获取或设置与目录或文件相关的属性 返回一个FileAttributes对象

CreationTime属性

获取或设置创建目录或文件的时间

Exists属性

目录或文件是否存在

Extension属性

获取文件扩展名

FullName属性

获取目录或文件的完全路径

LastAccessTime属性

获取目录或文件最近一次被访问的时间

LastWriteTime属性

获取或设置目录或文件最近一次被修改的时间

Name属性

获取目录或文件的名称 不包含路径

FileSystemInfo类的方法

Delete方法

删除目录或删除文件

Refresh方法

刷新目录或文件 以确保对目录或文件进行操作时得到的目录或文件的状态是最新的

ToString方法

返回目录或文件路径的字符表示

DirectoryInfo类

ns:System.IO

Level:Object=>MarshalByRefObject=>FileSystemInfo=>DirectoryInfo

DirectoryInfo类似Directory FileInfo类似File 后者只提供静态方法来操作目录或文件 问前者需要实例化对象 何时使用DirectoryInfo和Directory取决于是否重复或多次用到该目录或文件 如果仅仅只有很少的操作 使用Directory和File类即可 反之需要使用DirectoryInfo和FileInfo的实例来操作目录和文件

DirectoryInfo类的属性

Parent属性

获取当前目录的父目录 如果父目录不存在 则返回null

Root属性

获取当前目录的根 如返回 D:\

DirectoryInfo类的方法

Create方法

根据当前目录的路径在磁盘上实际创建它

CreateSubdirectory方法

在当前目录下创建参数指定的子目录

GetDirectories方法

获取当前目录下的子目录 返回一个DirectoryInfo数组 可以提供参数2指定查找模式 如A* 表示只查找名称以A开头的任意名称的子目录

GetFiles方法

获取当前目录下的文件 返回一个FileInfo数组 可以提供参数2指定查找模式 如*.txt 表示只查找以.txt结尾的任意名称的文件

GetFileSystemInfos方法

GetDirectories和GetFiles方法的结合体 获取当前目录的所有子目录和所有文件 可以提供参数2指定查找模式 返回一个FileSystemInfo数组

MoveTo方法

将当前目录移动到参数指定的地址上 如果地址上存在相同名称的目录将抛出异常

 DirectoryInfo folder = new DirectoryInfo(@"C:\test");
 FileAttributes attr= folder.Attributes;
 if ((attr & FileAttributes.Hidden) == FileAttributes.Hidden)
 {
     Response.Write("该文件为隐藏文件");
 }

FileAttributes可能的枚举值很多 可以测试是否是只读、隐藏等等 更多请查询MSDN

FileInfo类

ns:System.IO

Level:Object=>MarshalByRefObject=>FileSystemInfo=>FileInfo

FileInfo类的属性

Directory属性

获取当前文件所在的目录 返回一个DirectoryInfo实例

DirectoryName属性

获取当前文件所在的目录的名称

Length

获取文件大小 大小以字节为单位

Name

获取文件的名称

FileInfo类的方法

AppendText方法

返回一个SreamWriter对象 用于向当前文件写入数据

CopyTo方法

将当前文件复制到参数指定的路径地址中 如果参数地址中存在相同名称的文件则会抛出异常 可以通过参数2指定是否覆盖目标路径上存在的相同名称的文件

Create方法

在磁盘上实际创建当前文件 返回一个FileStream对象 以便对文件进行读写操作

CreateText方法

创建用于对当前文件进行写操作的StreamWriter对象

MoveTo方法

将当前文件移动到参数指定的路径

Open方法

打开已经存在的文件 返回一个FileStream对象 如果文件不存在则会抛出异常 此方法具有多个重载版本 它的参数如下

path:文件路径

mode:一个FileMode的枚举值 指定了操作系统应该如何打开一个文件的方式

access:一个FileAccess的枚举值 指定了文件的属性 此枚举可以与按位运算符一起使用 以表明文件的多个属性

share:一个FileShare的枚举值 指定了多个进程之间是否能同时访问或共享同一文件

OpenRead方法

打开文件 以便进行读操作 返回一个FileStream对象

OpenText方法

打开文件 以便进行读取 返回一个以UTF-8编码的StreamReader对象

OpenWrite方法

打开文件 以便进行写操作 返回一个FileStream对象

Path类

ns:System.IO

Level:Object=>Path

表示路径的类

Path类的静态方法

GetExtension方法

获取文件后缀名

ChangeExtension方法

更改文件后缀名

Combine方法

更改目录路径和文件名组合为一个文件路径 如

 Path.Combine(@"C:", "1.jpg"); //return "C:\1.jpg"

GetDirectoryName方法

获取文件的目录路径 不包括文件名和后缀名

GetFileNameWithoutExtension方法

获取文件名 不包括后缀名和路径

GetFileName方法

获取文件名 包括后缀名 不包括路径

GetFullPath方法

获取文件全路径

下面是一个简单的例子 在WinForm程序中获取与程序集在同一目录的文本文件

 //获取当前运行的程序集所在路径
 string AssemlyPath = System.Reflection.Assembly.GetExecutingAssembly().Location;
 //截取目录部分
 string directoryPath = Path.GetDirectoryName(AssemlyPath);
 //获取跟程序集在同一目录的文本文件
 string filePath = Path.Combine(directoryPath, "1.txt");
 //打开文件
 File.Open(filePath,FileMode.Open);
 //读取该文件略……

C# - 学习总目录