C# 中的文件处理: I/O Operations [示例]

⚡ 智能摘要

C# 文件操作允许您使用 System.IO 命名空间读取、写入、复制和删除文件。本文将通过清晰的代码示例,教您如何使用 File.Exists、File.ReadAllLines、File.ReadAllText、File.Copy 和 File.Delete 方法。

  • 📂 它是什么: 通过 System.IO 命名空间进行 C# 文件操作,包括读取、写入、复制和删除文件。
  • 文件存在: File.Exists(path) 会在读取或删除文件之前检查文件是否存在。
  • ???? 读: File.ReadAllLines 返回一个字符串数组,而 File.ReadAllText 将整个文件作为一个字符串返回。
  • 📋 复制并删除: File.Copy 将文件复制到新路径,File.Delete 将其删除。
  • 🤖 人工智能帮助: GitHub Copilot 等 AI 工具可以立即生成 C# 文件处理代码。

C# 文件 Opera系统蒸发散

C# 具有多种文件操作。这些操作包括打开文件、读取或写入文件。有时您可能希望直接处理文件,在这种情况下,您可以使用 C# 中可用的文件操作。下面提到了一些基本的文件操作。

  1. 读取——此操作是从文件读取数据的基本读取操作。
  2. 写入 – 此操作是将数据写入文件的基本写入操作。默认情况下,将从文件中删除所有现有内容,并写入新内容。
  3. 附加 – 此操作也涉及将信息写入文件。唯一的区别是不会覆盖文件中的现有数据。要写入的新数据将添加到文件末尾。

基础 I/O 命令

C# 和 .Net 可以借助多个文件 I/O 命令来处理文件。让我们来看看其中一些命令。在我们的示例中,我们假设 D 盘中有一个名为 Example.txt 的文件。
该文件将是一个简单的文本文件,包含 2 行,如下所示

  • Guru99 – .Net
  • Guru99 -C#

为了举例,我们将创建一个简单的控制台应用程序并使用我们的文件 I/O 命令。控制台应用程序是前面教程中创建的基本应用程序。在控制台应用程序中,所有代码都写入 program.cs 文件。

文件已存在

File exist 方法用于检查特定文件是否存在。现在让我们看看可用于检查我们的 Example.txt 文件是否存在的代码。在 program.cs 文件中输入以下代码。

文件已存在

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Tutorial
 {
  static void Main(string[] args)
  {
   String path = @"D:\Example.txt";
   
   if (File.Exists(path))
   {
    Console.WriteLine("File Exists");
   }
   Console.ReadKey();
  }
 }
}

Code 解释:-

  1. 首先,我们设置一个字符串变量,其中包含我们的 Example.txt 文件的路径。
  2. 接下来,我们使用 File.Exists 方法来检查文件是否存在。如果文件存在,则返回真值。
  3. 如果我们得到一个真值并且文件确实存在,那么我们会将消息“文件存在”写入控制台。

当设置了上述代码并使用 Visual Studio 执行项目时,您将获得以下输出。

输出:-

文件已存在

从上面的输出中,可以看到File.Exists命令执行成功,并且在控制台窗口中显示了正确的消息。

文件.读取所有行

该方法用于逐行读取文件中的所有行。然后将这些行存储在字符串数组变量中。让我们看一个例子。在 program.cs 文件中输入以下代码。

文件.读取所有行

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Tutorial
 {
  static void Main(string[] args)
  {
   String path = @"D:\Example.txt";

   String[] lines;
   lines = File.ReadAllLines(path);

   Console.WriteLine(lines[0]);
   Console.WriteLine(lines[1]);

   Console.ReadKey();
  }
 }
}

Code 解释:-

  1. 首先,我们声明一个字符串数组变量。这将用于存储 File.ReadAllLines 方法返回的结果。
  2. 接下来,我们使用 File.ReadAllLines 方法从文本文件中读取所有行。然后将结果传递给 lines 变量。
  3. 由于我们知道我们的文件只包含 2 行,我们可以通过 lines[0] 和 lines[1] 命令访问数组变量的值。

设置上述代码后,使用以下方法运行项目 Visual Studio中,你将获得以下输出。

输出:-

文件.读取所有行

从输出中,你可以看到 File.ReadAllLines 命令返回了文件 Example.txt 中的两行

文件.读取所有文本

此方法用于一次性读取文件中的所有行。然后将这些行存储在字符串变量中。让我们看一个例子。在 program.cs 文件中输入以下代码。

文件.读取所有文本

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
  class Tutorial
  {
   static void Main(string[] args)
   {
    String path = @"D:\Example.txt";

    String lines;
    lines = File.ReadAllText(path);
    Console.WriteLine(lines);
 
    Console.ReadKey();
   }
  }
}

Code 解释:-

  1. 首先,我们声明一个名为 Lines 的字符串变量。这将用于存储 File.ReadAllText 方法返回的结果。
  2. 接下来,我们使用 File.ReadAllText 方法从文本文件中读取所有行。然后将结果传递给 lines 变量。
  3. 我们可以直接使用Console.Writeline方法来显示Lines变量的值。

当设置了上述代码并使用 Visual Studio 运行项目时,您将获得以下输出。

输出:-

文件.读取所有文本

从输出中,你可以看到 File.ReadAlltext 命令返回了文件 Example.txt 中的两行

文件.复制

该方法用于复制现有文件。我们来看一个例子。在 program.cs 文件中输入以下代码。

文件.复制

using System;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
  class Tutorial
  {
   static void Main(string[] args)
   {
   String path = @"D:\Example.txt";

   String copypath = @"D:\ExampleNew.txt";

   File.Copy(path,copypath);

   Console.ReadKey();
   }
  }
}

Code 解释:-

  1. 首先,我们声明一个名为 path 的字符串变量。这将是我们的 Example.txt 文件的位置。此文件将是用于复制操作的源文件。
  2. 接下来,我们声明一个名为 copypath 的字符串变量。这将是名为 ExampleNew.txt 的新文件的位置。这将是从源文件 Example.txt 写入内容的目标文件。
  3. 然后我们调用File.Copy方法将文件Example.txt文件复制到文件ExampleNew.txt。

当设置了上述代码并使用Visual Studio运行项目时,文件Example.txt将被复制到ExampleNew.txt。

文件.删除

该方法用于删除一个已有的文件。我们来看一个例子。在program.cs文件中输入下面的代码。

文件.删除

using System;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
  class Tutorial
  {
   static void Main(string[] args)
   {
   String path = @"D:\Example.txt";

   File.Delete(path);

   Console.ReadKey();
   }
  }
}

Code 解释:-

  1. 首先,我们声明一个名为 path 的字符串变量。这将是我们的 Example.txt 文件的位置。这是将被删除的文件。
  2. 接下来,我们调用 File.Delete 方法来删​​除文件。

当设置了上述代码并使用Visual Studio运行项目时,文件Example.txt将从D盘中删除。

C# 文件方法参考

下表总结了主要的 C# 文件方法及其各自的功能。

文件方法 描述
文件已存在 文件存在方法用于检查特定文件是否存在。
文件.读取所有行 该方法用于逐行读取文件中的所有行。
文件.读取所有文本 此方法用于一次读取文件中的所有行。
文件.复制 该方法用于复制现有文件。
文件.删除 该方法用于删除一个现有的文件。

常见问题

C# 文件操作允许您读取、写入、复制、追加和删除文件。大多数方法都属于 System.IO.File 类,例如 File.Exists、File.ReadAllText、File.Copy 和 File.Delete。

使用 `File.Exists(path)`,如果文件存在则返回 true,否则返回 false。在读取或删除文件之前检查此方法,以避免运行时异常。

File.ReadAllLines 将每一行作为字符串数组的一个元素返回,而 File.ReadAllText 将整个文件内容作为单个字符串返回。

调用 File.Copy(sourcePath, destinationPath)。它会在目标位置创建一个新文件,其中包含源文件的内容。

调用 File.Delete(path) 方法会永久删除文件,因此请先使用 File.Exists 方法确认文件是否存在,以避免抛出 FileNotFoundException 异常。

GitHub Copilot 等 AI 助手可以自动补全 File.ReadAllText、File.Copy 和 File.Delete 调用,并根据描述任务的简短注释生成 try-catch 文件处理代码。

是的。人工智能工具可以生成读取器和写入器方法,建议使用 StreamReader 或 File 方法,并添加异常处理,从而使您的代码更安全。

在程序顶部添加 using System.IO; 语句。System.IO 命名空间包含 File、StreamReader 和 Stream 类。Writer 用于文件处理的类。

总结一下这篇文章: