除了封装数据流的类 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); //读取该文件略……