File 类
提供用于创建、复制、删除、移动和打开文件的静态方法,并协助创建 FileStream 对象。
程序集: mscorlib(在 mscorlib.dll 中)
File 类型公开以下成员。
名称 | 说明 | |
---|---|---|
AppendAllLines(String, IEnumerable(Of String)) | 在一个文件中追加文本行,然后关闭该文件。 | |
AppendAllLines(String, IEnumerable(Of String), Encoding) | 使用指定的编码向一个文件中追加文本行,然后关闭该文件。 | |
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(Of String)) | 创建一个新文件,在其中写入一组字符串,然后关闭该文件。 | |
WriteAllLines(String, String()) | 创建一个新文件,在其中写入指定的字符串数组,然后关闭该文件。 | |
WriteAllLines(String, IEnumerable(Of String), Encoding) | 使用指定的编码创建一个新文件,在其中写入一组字符串,然后关闭该文件。 | |
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 |
说明 |
---|---|
指定对文件的读取和写入访问。 |
|
为已在使用中的文件指定允许的访问级别。 |
|
指定是保留还是覆盖现有文件的内容,并指定创建现有文件的请求是否会导致异常。 |
注意 |
---|
在接受路径作为输入字符串的成员中,路径必须是格式良好的,否则将引发异常。 例如,如果路径是完全限定的但以空格开头,则路径在类的方法中不会被修剪。 因此,路径的格式不正确,并将引发异常。 同样,路径或路径的组合不能被完全限定两次。 例如,“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 任务。
下面的示例演示了 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); } } } }