System.IO.File 类
方法描述
提供用于创建、复制、删除、移动和打开文件的静态方法,并协助创建 FileStream 对象。
语法定义(C# System.IO.File 类 的用法)
[ComVisibleAttribute(true)] public static class File
成员/方法
方法名称 | 方法描述 |
---|---|
AppendAllLines(String, IEnumerable |
在一个文件中追加文本行,然后关闭该文件。 |
AppendAllLines(String, IEnumerable |
使用指定的编码向一个文件中追加文本行,然后关闭该文件。 |
AppendAllText(String, String) | 打开一个文件,向其中追加指定的字符串,然后关闭该文件。 如果文件不存在,此方法创建一个文件,将指定的字符串写入文件,然后关闭该文件。 |
AppendAllText(String, String, Encoding) | 将指定的字符串追加到文件中,如果文件还不存在则创建该文件。 |
AppendText | 创建一个 StreamWriter,它将 UTF-8 编码文本追加到现有文件。 |
Copy(String, String) | 将现有文件复制到新文件。 不允许覆盖同名的文件。 |
Copy(String, String, Boolean) | 将现有文件复制到新文件。 允许覆盖同名的文件。 |
Create(String) | 在指定路径中创建或覆盖文件。 |
Create(String, Int32) | 创建或覆盖指定的文件。 |
Create(String, Int32, FileOptions) | 创建或覆盖指定的文件,并指定缓冲区大小和一个描述如何创建或覆盖该文件的 FileOptions 值。 |
Create(String, Int32, FileOptions, FileSecurity) | 创建或覆盖具有指定的缓冲区大小、文件选项和文件安全性的指定文件。 |
CreateText | 创建或打开一个文件用于写入 UTF-8 编码的文本。 |
Decrypt | 解密由当前帐户使用 Encrypt 方法加密的文件。 |
Delete | 删除指定的文件。 |
Encrypt | 将某个文件加密,使得只有加密该文件的帐户才能将其解密。 |
Exists | 确定指定的文件是否存在。 |
GetAccessControl(String) | 获取一个 FileSecurity 对象,它封装指定文件的访问控制列表 (ACL) 条目。 |
GetAccessControl(String, AccessControlSections) | 获取一个 FileSecurity 对象,它封装特定文件的指定类型的访问控制列表 (ACL) 项。 |
GetAttributes | 获取在此路径上的文件的 FileAttributes。 |
GetCreationTime | 返回指定文件或目录的创建日期和时间。 |
GetCreationTimeUtc | 返回指定的文件或目录的创建日期及时间,其格式为协调世界时 (UTC)。 |
GetLastAccessTime | 返回上次访问指定文件或目录的日期和时间。 |
GetLastAccessTimeUtc | 返回上次访问指定的文件或目录的日期及时间,其格式为协调世界时 (UTC)。 |
GetLastWriteTime | 返回上次写入指定文件或目录的日期和时间。 |
GetLastWriteTimeUtc | 返回上次写入指定的文件或目录的日期和时间,其格式为协调世界时 (UTC)。 |
Move | 将指定文件移到新位置,并提供指定新文件名的选项。 |
Open(String, FileMode) | 打开指定路径上的 FileStream,具有读/写访问权限。 |
Open(String, FileMode, FileAccess) | 以指定的模式和访问权限打开指定路径上的 FileStream。 |
Open(String, FileMode, FileAccess, FileShare) | 打开指定路径上的 FileStream,具有指定的读、写或读/写访问模式以及指定的共享选项。 |
OpenRead | 打开现有文件以进行读取。 |
OpenText | 打开现有 UTF-8 编码文本文件以进行读取。 |
OpenWrite | 打开一个现有文件或创建一个新文件以进行写入。 |
ReadAllBytes | 打开一个文件,将文件的内容读入一个字符串,然后关闭该文件。 |
ReadAllLines(String) | 打开一个文本文件,读取文件的所有行,然后关闭该文件。 |
ReadAllLines(String, Encoding) | 打开一个文件,使用指定的编码读取文件的所有行,然后关闭该文件。 |
ReadAllText(String) | 打开一个文本文件,读取文件的所有行,然后关闭该文件。 |
ReadAllText(String, Encoding) | 打开一个文件,使用指定的编码读取文件的所有行,然后关闭该文件。 |
ReadLines(String) | 读取文件的文本行。 |
ReadLines(String, Encoding) | 读取具有指定编码的文件的文本行。 |
Replace(String, String, String) | 使用其他文件的内容替换指定文件的内容,这一过程将删除原始文件,并创建被替换文件的备份。 |
Replace(String, String, String, Boolean) | 用其他文件的内容替换指定文件的内容,删除原始文件,并创建被替换文件的备份和(可选)忽略合并错误。 |
SetAccessControl | 对指定的文件应用由 FileSecurity 对象描述的访问控制列表 (ACL) 项。 |
SetAttributes | 设置指定路径上文件的指定的 FileAttributes。 |
SetCreationTime | 设置创建该文件的日期和时间。 |
SetCreationTimeUtc | 设置文件创建的日期和时间,其格式为协调世界时 (UTC)。 |
SetLastAccessTime | 设置上次访问指定文件的日期和时间。 |
SetLastAccessTimeUtc | 设置上次访问指定的文件的日期和时间,其格式为协调世界时 (UTC)。 |
SetLastWriteTime | 设置上次写入指定文件的日期和时间。 |
SetLastWriteTimeUtc | 设置上次写入指定的文件的日期和时间,其格式为协调世界时 (UTC)。 |
WriteAllBytes | 创建一个新文件,在其中写入指定的字节数组,然后关闭该文件。 如果目标文件已存在,则覆盖该文件。 |
WriteAllLines(String, IEnumerable |
创建一个新文件,在其中写入一组字符串,然后关闭该文件。 |
WriteAllLines(String, String[]) | 创建一个新文件,在其中写入指定的字符串数组,然后关闭该文件。 |
WriteAllLines(String, IEnumerable |
使用指定的编码创建一个新文件,在其中写入一组字符串,然后关闭该文件。 |
WriteAllLines(String, String[], Encoding) | 创建一个新文件,使用指定的编码在其中写入指定的字符串数组,然后关闭该文件。 |
WriteAllText(String, String) | 创建一个新文件,在其中写入指定的字符串,然后关闭文件。 如果目标文件已存在,则覆盖该文件。 |
WriteAllText(String, String, Encoding) | 创建一个新文件,在其中写入指定的字符串,然后关闭文件。 如果目标文件已存在,则覆盖该文件。 |
提示和注释
将 File 类用于典型的操作,如复制、移动、重命名、创建、打开、删除和追加到文件。 也可将 File 类用于获取和设置文件特性或有关文件创建、访问及写入操作的 DateTime 信息。
许多 File 方法在您创建或打开文件时返回其他 I/O 类型。 可以使用这些其他类型进一步处理文件。 有关更多信息,请参见特定的 File 成员,如 OpenText、CreateText 或 Create。
由于所有的 File 方法都是静态的,所以如果只想执行一个操作,那么使用 File 方法的效率比使用相应的 FileInfo 实例方法可能更高。 所有的 File 方法都要求当前所操作的文件的路径。
File 类的静态方法对所有方法都执行安全检查。 如果打算多次重用某个对象,可考虑改用 FileInfo 的相应实例方法,因为并不总是需要安全检查。
默认情况下,将向所有用户授予对新文件的完全读/写访问权限。
下表描述了用于自定义各种 File 方法的行为的枚举。
Enumeration
说明
FileAccess
指定对文件的读取和写入访问。
FileShare
为已在使用中的文件指定允许的访问级别。
FileMode
指定是保留还是覆盖现有文件的内容,并指定创建现有文件的请求是否会导致异常。
注意
在接受路径作为输入字符串的成员中,路径必须是格式良好的,否则将引发异常。 例如,如果路径是完全限定的但以空格开头,则路径在类的方法中不会被修剪。 因此,路径的格式不正确,并将引发异常。 同样,路径或路径的组合不能被完全限定两次。 例如,“c:\temp c:\windows”在大多数情况下也将引发异常。 在使用接受路径字符串的方法时,请确保路径是格式良好的。
在接受路径的成员中,路径可以是指文件或仅是目录。 指定路径也可以是相对路径或者服务器和共享名称的统一命名约定 (UNC) 路径。 例如,以下都是可接受的路径:
C# 中的“c:\\MyDir\\MyFile.txt”或 Visual Basic 中的“c:\MyDir\MyFile.txt”。
C# 中的“c:\\MyDir”或 Visual Basic 中的“c:\MyDir”。
C# 中的“MyDir\\MySubdir”或 Visual Basic 中的“MyDir\MySubDir”。
C# 中的“\\\\MyServer\\MyShare”或 Visual Basic 中的“\\MyServer\MyShare”。
有关通用 I/O 任务的列表,请参见通用 I/O 任务。
System.IO.File 类例子
下面的示例演示了 File 类的一些主要成员。
using System; using System.IO; class Test { public static void Main() { string path = @"c:\temp\MyTest.txt"; if (!File.Exists(path)) { // Create a file to write to. using (StreamWriter sw = File.CreateText(path)) { sw.WriteLine("Hello"); sw.WriteLine("And"); sw.WriteLine("Welcome"); } } // Open the file to read from. using (StreamReader sr = File.OpenText(path)) { string s = ""; while ((s = sr.ReadLine()) != null) { Console.WriteLine(s); } } } }
线程安全
此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。
版本信息
.NET Framework 受以下版本支持:4、3.5、3.0、2.0、1.1、1.0 .NET Framework Client Profile 受以下版本支持:4、3.5 SP1
适用平台
Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。