在 C#中使用文件和目录

本文关键字:文件 | 更新日期: 2023-09-12 17:40:02

提供了以下类来处理文件系统。它们可用于访问目录、访问文件、打开文件进行读取或写入、创建新文件或将现有文件从一个位置移动到另一个位置等。

类名用法
FileFile是一个静态类,它提供不同的功能,如复制,创建,移动,删除,打开读取或/写入,加密或解密,检查文件是否存在,将行或文本附加到文件的内容,获取上次访问时间等。
FileInfo 类提供与静态 File 类相同的功能。通过手动编写代码以从文件中读取或写入字节,您可以更好地控制如何对文件执行读/写操作。
Directory Directory 是一个静态类,提供用于创建、移动、删除和访问子目录的功能。
DirectoryInfoDirectoryInfo提供了用于创建、移动、删除和访问子目录的实例方法。
PathPath 是一个静态类,它提供的功能包括检索文件的扩展名、更改文件的扩展名、检索绝对物理路径和其他与路径相关的功能。

File

C# 包含静态 File 类,用于在物理文件系统上执行 I/O 操作。静态文件类包括各种实用程序方法,用于与任何类型的物理文件(例如二进制文件,文本等)进行交互。

使用此静态 File 类对物理文件执行一些快速操作。由于性能原因,不建议同时对多个文件使用 File 类进行多个操作。在这种情况下使用 FileInfo 类。

文件类的重要方法

方法 用法
AppendAllLines 将行追加到文件,然后关闭该文件。如果指定的文件不存在,此方法将创建一个文件,将指定的行写入该文件,然后关闭该文件。
AppendAllText 打开一个文件,将指定的字符串追加到该文件,然后关闭该文件。如果该文件不存在,此方法将创建一个文件,将指定的字符串写入该文件,然后关闭该文件。
AppendText 创建一个 StreamWriter,该 StreamWriter 将 UTF-8 编码的文本追加到现有文件,或者追加到新文件(如果指定的文件不存在)。
Copy 将现有文件复制到新文件。不允许覆盖同名文件。
Create 创建或覆盖指定路径中的文件。
CreateText 创建或打开用于写入 UTF-8 编码文本的文件。
Decrypt 解密帐户使用 Encrypt 方法加密的文件。
Delete 删除指定的文件。
Encrypt 加密文件,以便只有用于加密文件的帐户才能解密文件。
Exists 确定指定的文件是否存在。
GetAccessControl 获取一个文件安全对象,该对象封装指定文件的访问控制列表 (ACL) 条目。
Move 将指定的文件移动到新位置,并提供指定新文件名的选项。
Open 指定路径上打开具有读/写访问权限的文件流。
ReadAllBytes 打开二进制文件,将文件的内容读入字节数组,然后关闭该文件。
ReadAllLines 打开一个文本文件,读取该文件的所有行,然后关闭该文件。
ReadAllText 打开一个文本文件,读取该文件的所有行,然后关闭该文件。
Replace 将指定文件的内容替换为另一个文件的内容,删除原始文件,并创建被替换文件的备份。
WriteAllBytes 创建一个新文件,将指定的字节数组写入该文件,然后关闭该文件。如果目标文件已存在,则会覆盖该文件。
WriteAllLines 创建一个新文件,将字符串集合写入该文件,然后关闭该文件。
WriteAllText 创建一个新文件,将指定的字符串写入该文件,然后关闭该文件。如果目标文件已存在,则会覆盖该文件。

追加文本行

使用 AppendAllLines() 方法将多个文本行追加到指定的文件,如下所示。

Example: Append all text lines to a file

string dummyLines = "This is first line." + Environment.NewLine +
                    "This is second line." + Environment.NewLine +
                    "This is third line.";
//Opens DummyFile.txt and append lines. If file is not exists then create and open.
File.AppendAllLines(@"C:DummyFile.txt", dummyLines.Split(Environment.NewLine.ToCharArray()).ToList<string>());

追加字符串

使用 File.AppendAllText() 方法以单行代码将字符串追加到文件中,如下所示。

Example: Append string to a file

//Opens DummyFile.txt and append Text. If file is not exists then create and open.
File.AppendAllText(@"C: DummyFile.txt", "This is File testing");

覆盖文本

,请使用

File.WriteAllText() 方法将文本写入文件。请注意,它不会附加文本,而是覆盖现有文本。

Example: Overwrite existing texts

//Opens DummyFile.txt and write texts. If file is not exists then create and open.
File.WriteAllText(@"C:DummyFile.txt", "This is dummy text");

下面的示例演示如何使用静态 File 类执行不同的操作。

Example: Multiple File operations

//Check whether file is exists or not at particular location
bool isFileExists = File.Exists(@"C: DummyFile.txt"); // returns false
//Copy DummyFile.txt as new file DummyFileNew.txt
File.Copy(@"C:DummyFile.txt", @"D:NewDummyFile.txt");
//Get when the file was accessed last time 
DateTime lastAccessTime = File.GetLastAccessTime(@"C:DummyFile.txt");
//get when the file was written last time
DateTime lastWriteTime = File.GetLastWriteTime(@"C:DummyFile.txt");
// Move file to new location
File.Move(@"C:DummyFile.txt", @"D:DummyFile.txt");
//Open file and returns FileStream for reading bytes from the file
FileStream fs = File.Open(@"D:DummyFile.txt", FileMode.OpenOrCreate);
//Open file and return StreamReader for reading string from the file
StreamReader sr = File.OpenText(@"D:DummyFile.txt");
    
//Delete file
File.Delete(@"C:DummyFile.txt");

因此,使用静态文件类处理物理文件很容易。但是,如果您想要更大的灵活性,请使用 FileInfo 类。同样,使用静态目录类来处理物理目录。

注意:

  1. File 是一个静态类,用于从物理文件读取,编码较少。
  2. 静态文件类为物理文件提供创建、读写、复制、移动、删除等功能。
  3. 静态目录类为编码较少的物理目录提供创建、复制、移动、删除等功能。
  4. FileInfo 和 DirectoryInfo 类提供与静态 File 和 Directory 类相同的功能。