การจัดการไฟล์ใน C#: I/O Operaต่างๆ [ตัวอย่าง]

C# มีการดำเนินการเกี่ยวกับไฟล์มากมาย การดำเนินการเหล่านี้รวมถึงการเปิดไฟล์ การอ่านหรือการเขียนลงในไฟล์ อาจมีบางกรณีที่คุณต้องการทำงานกับไฟล์โดยตรง ซึ่งในกรณีนั้น คุณจะต้องใช้การดำเนินการเกี่ยวกับไฟล์ที่มีอยู่ใน C# การดำเนินการเกี่ยวกับไฟล์พื้นฐานบางส่วนจะกล่าวถึงด้านล่าง

  1. การอ่าน – การดำเนินการนี้เป็นการดำเนินการอ่านพื้นฐานโดยข้อมูลจะถูกอ่านจากไฟล์
  2. การเขียน – การดำเนินการนี้เป็นการดำเนินการเขียนพื้นฐานซึ่งข้อมูลจะถูกเขียนลงในไฟล์ โดยค่าเริ่มต้น เนื้อหาที่มีอยู่ทั้งหมดจะถูกลบออกจากไฟล์ และเนื้อหาใหม่จะถูกเขียน
  3. การผนวก – การดำเนินการนี้ยังเกี่ยวข้องกับการเขียนข้อมูลลงในไฟล์ ความแตกต่างเพียงอย่างเดียวคือข้อมูลที่มีอยู่ในไฟล์จะไม่ถูกเขียนทับ ข้อมูลใหม่ที่จะเขียนจะถูกเพิ่มที่ตอนท้ายของไฟล์

คำสั่ง I/O พื้นฐาน

C# และ .Net สามารถทำงานกับไฟล์ต่างๆ ได้โดยใช้คำสั่ง File I/O หลายคำสั่ง มาดูคำสั่งเหล่านี้กัน สำหรับตัวอย่างของเรา เราจะถือว่าเรามีไฟล์ในไดรฟ์ D ชื่อ Example.txt
ไฟล์จะเป็นไฟล์ข้อความธรรมดาและมี 2 บรรทัดดังรูปด้านล่าง

  • Guru99 – .เน็ต
  • กูรู99 -C#

สำหรับตัวอย่างของเรา เราจะสร้างแอปพลิเคชันคอนโซลแบบธรรมดาและทำงานกับคำสั่ง File I/O ของเรา แอปพลิเคชันคอนโซลเป็นแอปพลิเคชันพื้นฐานที่สร้างขึ้นในบทช่วยสอนก่อนหน้านี้ ในแอปพลิเคชันคอนโซล โค้ดทั้งหมดจะถูกเขียนลงในไฟล์ program.cs

แฟ้มที่มีอยู่

วิธีการ Fileมีอยู่ ใช้เพื่อตรวจสอบว่ามีไฟล์ใดอยู่หรือไม่ ตอนนี้เรามาดูโค้ดที่สามารถใช้เพื่อตรวจสอบว่าไฟล์ 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();
  }
 }
}

คำอธิบายรหัส:-

  1. ขั้นแรก เรากำลังตั้งค่าตัวแปรสตริงด้วยเส้นทางไปยังไฟล์ Example.txt ของเรา
  2. ต่อไปเราใช้เมธอด File.Exists เพื่อตรวจสอบว่าไฟล์นั้นมีอยู่หรือไม่ หากมีไฟล์อยู่ ค่าจริงจะถูกส่งกลับ
  3. หากเราได้รับค่าจริงและมีไฟล์อยู่ เราจะเขียนข้อความ "File Exists" ลงในคอนโซล

เมื่อตั้งค่าโค้ดข้างต้นแล้ว และดำเนินการโครงการโดยใช้ Visual Studio คุณจะได้ผลลัพธ์ด้านล่างนี้

ผลลัพธ์:-

แฟ้มที่มีอยู่

จากผลลัพธ์ข้างต้น คุณจะเห็นว่าคำสั่ง File.Exists ได้รับการดำเนินการสำเร็จ และข้อความที่ถูกต้องจะแสดงในหน้าต่างคอนโซล

ไฟล์.ReadAlllines

วิธีการนี้ใช้เพื่ออ่านบรรทัดทั้งหมดทีละบรรทัดในไฟล์ เส้นจะถูกเก็บไว้ในตัวแปรอาร์เรย์สตริง ลองดูตัวอย่าง กรอกโค้ดด้านล่างลงในไฟล์ program.cs

ไฟล์.ReadAlllines

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();
  }
 }
}

คำอธิบายรหัส:-

  1. ขั้นแรก เรากำลังประกาศตัวแปรอาร์เรย์สตริง สิ่งนี้จะถูกใช้เพื่อจัดเก็บผลลัพธ์ซึ่งจะถูกส่งกลับโดยเมธอด File.ReadAllLines
  2. ต่อไป เราใช้เมธอด File.ReadAllLines เพื่ออ่านบรรทัดทั้งหมดจากไฟล์ข้อความของเรา ผลลัพธ์จะถูกส่งไปยังตัวแปรเส้น
  3. เนื่องจากเรารู้ว่าไฟล์ของเรามีเพียง 2 บรรทัด เราจึงสามารถเข้าถึงค่าของตัวแปรอาร์เรย์ได้โดยใช้คำสั่ง lines[0] และ lines[1]

เมื่อตั้งค่าโค้ดข้างต้นแล้ว และโปรเจ็กต์ถูกรันโดยใช้ Visual Studioคุณจะได้ผลลัพธ์ด้านล่าง

ผลลัพธ์:-

ไฟล์.ReadAlllines

จากผลลัพธ์ คุณจะเห็นว่าคำสั่ง File.ReadAllLines ส่งคืนทั้งสองบรรทัดจากไฟล์ Example.txt ของเรา

ไฟล์ ReadAllText

วิธีนี้ใช้เพื่ออ่านบรรทัดทั้งหมดในไฟล์พร้อมกัน เส้นต่างๆ จะถูกเก็บไว้ในตัวแปรสตริง ลองดูตัวอย่าง กรอกโค้ดด้านล่างลงในไฟล์ program.cs

ไฟล์ ReadAllText

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();
   }
  }
}

คำอธิบายรหัส:-

  1. ขั้นแรก เรากำลังประกาศตัวแปรสตริงที่เรียกว่า Lines สิ่งนี้จะถูกใช้เพื่อจัดเก็บผลลัพธ์ซึ่งจะถูกส่งกลับโดยเมธอด File.ReadAllText
  2. ต่อไป เราใช้เมธอด File.ReadAllText เพื่ออ่านบรรทัดทั้งหมดจากไฟล์ข้อความของเรา ผลลัพธ์จะถูกส่งไปยังตัวแปรเส้น
  3. เราสามารถใช้เมธอด Console.Writeline ได้โดยตรงเพื่อแสดงค่าของตัวแปร Lines

เมื่อตั้งค่าโค้ดข้างต้นแล้ว และรันโปรเจ็กต์โดยใช้ Visual Studio คุณจะได้ผลลัพธ์ด้านล่างนี้

ผลลัพธ์:-

ไฟล์ ReadAllText

จากเอาต์พุต คุณจะเห็นว่าคำสั่ง 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();
   }
  }
}

คำอธิบายรหัส:-

  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();
   }
  }
}

คำอธิบายรหัส:-

  1. ขั้นแรก เรากำลังประกาศตัวแปรสตริงที่เรียกว่าพาธ นี่จะเป็นตำแหน่งของไฟล์ Example.txt ของเรา นี่คือไฟล์ที่จะถูกลบ
  2. ต่อไปเราจะเรียกเมธอด File.Delete เพื่อลบไฟล์

เมื่อตั้งค่าโค้ดข้างต้นแล้ว และรันโครงการโดยใช้ Visual Studio ไฟล์ Example.txt จะถูกลบออกจากไดรฟ์ D

สรุป

  • C# มีการดำเนินการ File หลายอย่างที่สามารถดำเนินการกับไฟล์ได้ การดำเนินการเหล่านี้ส่วนใหญ่เป็นส่วนหนึ่งของคลาส File
  • หากคุณต้องการอ่านข้อมูลจากไฟล์ คุณสามารถใช้เมธอด File.ReadAlltext หรือ File.ReadAllLines
วิธีการไฟล์ Descriptไอออน
แฟ้มที่มีอยู่ File มีอยู่เมธอดที่ใช้ในการตรวจสอบว่ามีไฟล์ใดอยู่หรือไม่
ไฟล์.ReadAlllines วิธีการนี้ใช้เพื่ออ่านบรรทัดทั้งหมดทีละบรรทัดในไฟล์
ไฟล์ ReadAllText วิธีนี้ใช้เพื่ออ่านบรรทัดทั้งหมดในไฟล์พร้อมกัน
ไฟล์.คัดลอก วิธีการนี้ใช้ในการทำสำเนาไฟล์ที่มีอยู่
ไฟล์ลบ วิธีการนี้ใช้ในการลบไฟล์ที่มีอยู่