การจัดการไฟล์ใน C#: I/O Operaต่างๆ [ตัวอย่าง]
C# มีการดำเนินการเกี่ยวกับไฟล์มากมาย การดำเนินการเหล่านี้รวมถึงการเปิดไฟล์ การอ่านหรือการเขียนลงในไฟล์ อาจมีบางกรณีที่คุณต้องการทำงานกับไฟล์โดยตรง ซึ่งในกรณีนั้น คุณจะต้องใช้การดำเนินการเกี่ยวกับไฟล์ที่มีอยู่ใน C# การดำเนินการเกี่ยวกับไฟล์พื้นฐานบางส่วนจะกล่าวถึงด้านล่าง
- การอ่าน – การดำเนินการนี้เป็นการดำเนินการอ่านพื้นฐานโดยข้อมูลจะถูกอ่านจากไฟล์
- การเขียน – การดำเนินการนี้เป็นการดำเนินการเขียนพื้นฐานซึ่งข้อมูลจะถูกเขียนลงในไฟล์ โดยค่าเริ่มต้น เนื้อหาที่มีอยู่ทั้งหมดจะถูกลบออกจากไฟล์ และเนื้อหาใหม่จะถูกเขียน
- การผนวก – การดำเนินการนี้ยังเกี่ยวข้องกับการเขียนข้อมูลลงในไฟล์ ความแตกต่างเพียงอย่างเดียวคือข้อมูลที่มีอยู่ในไฟล์จะไม่ถูกเขียนทับ ข้อมูลใหม่ที่จะเขียนจะถูกเพิ่มที่ตอนท้ายของไฟล์
คำสั่ง 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(); } } }
คำอธิบายรหัส:-
- ขั้นแรก เรากำลังตั้งค่าตัวแปรสตริงด้วยเส้นทางไปยังไฟล์ Example.txt ของเรา
- ต่อไปเราใช้เมธอด File.Exists เพื่อตรวจสอบว่าไฟล์นั้นมีอยู่หรือไม่ หากมีไฟล์อยู่ ค่าจริงจะถูกส่งกลับ
- หากเราได้รับค่าจริงและมีไฟล์อยู่ เราจะเขียนข้อความ "File Exists" ลงในคอนโซล
เมื่อตั้งค่าโค้ดข้างต้นแล้ว และดำเนินการโครงการโดยใช้ Visual Studio คุณจะได้ผลลัพธ์ด้านล่างนี้
ผลลัพธ์:-
จากผลลัพธ์ข้างต้น คุณจะเห็นว่าคำสั่ง File.Exists ได้รับการดำเนินการสำเร็จ และข้อความที่ถูกต้องจะแสดงในหน้าต่างคอนโซล
ไฟล์.ReadAlllines
วิธีการนี้ใช้เพื่ออ่านบรรทัดทั้งหมดทีละบรรทัดในไฟล์ เส้นจะถูกเก็บไว้ในตัวแปรอาร์เรย์สตริง ลองดูตัวอย่าง กรอกโค้ดด้านล่างลงในไฟล์ 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(); } } }
คำอธิบายรหัส:-
- ขั้นแรก เรากำลังประกาศตัวแปรอาร์เรย์สตริง สิ่งนี้จะถูกใช้เพื่อจัดเก็บผลลัพธ์ซึ่งจะถูกส่งกลับโดยเมธอด File.ReadAllLines
- ต่อไป เราใช้เมธอด File.ReadAllLines เพื่ออ่านบรรทัดทั้งหมดจากไฟล์ข้อความของเรา ผลลัพธ์จะถูกส่งไปยังตัวแปรเส้น
- เนื่องจากเรารู้ว่าไฟล์ของเรามีเพียง 2 บรรทัด เราจึงสามารถเข้าถึงค่าของตัวแปรอาร์เรย์ได้โดยใช้คำสั่ง lines[0] และ lines[1]
เมื่อตั้งค่าโค้ดข้างต้นแล้ว และโปรเจ็กต์ถูกรันโดยใช้ Visual Studioคุณจะได้ผลลัพธ์ด้านล่าง
ผลลัพธ์:-
จากผลลัพธ์ คุณจะเห็นว่าคำสั่ง File.ReadAllLines ส่งคืนทั้งสองบรรทัดจากไฟล์ Example.txt ของเรา
ไฟล์ ReadAllText
วิธีนี้ใช้เพื่ออ่านบรรทัดทั้งหมดในไฟล์พร้อมกัน เส้นต่างๆ จะถูกเก็บไว้ในตัวแปรสตริง ลองดูตัวอย่าง กรอกโค้ดด้านล่างลงในไฟล์ 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(); } } }
คำอธิบายรหัส:-
- ขั้นแรก เรากำลังประกาศตัวแปรสตริงที่เรียกว่า Lines สิ่งนี้จะถูกใช้เพื่อจัดเก็บผลลัพธ์ซึ่งจะถูกส่งกลับโดยเมธอด File.ReadAllText
- ต่อไป เราใช้เมธอด File.ReadAllText เพื่ออ่านบรรทัดทั้งหมดจากไฟล์ข้อความของเรา ผลลัพธ์จะถูกส่งไปยังตัวแปรเส้น
- เราสามารถใช้เมธอด 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(); } } }
คำอธิบายรหัส:-
- ขั้นแรก เราจะประกาศตัวแปรสตริงชื่อ path ซึ่งจะเป็นตำแหน่งของไฟล์ Example.txt ไฟล์นี้จะเป็นไฟล์ต้นฉบับที่ใช้สำหรับการคัดลอก
- ต่อไป เราจะประกาศตัวแปรสตริงที่เรียกว่า copypath นี่จะเป็นตำแหน่งของไฟล์ใหม่ที่เรียกว่าไฟล์ ExampleNew.txt นี่จะเป็นไฟล์ปลายทางที่เนื้อหาจะถูกเขียนจากไฟล์ต้นฉบับ Example.txt
- จากนั้นเราจะเรียกเมธอด 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(); } } }
คำอธิบายรหัส:-
- ขั้นแรก เรากำลังประกาศตัวแปรสตริงที่เรียกว่าพาธ นี่จะเป็นตำแหน่งของไฟล์ Example.txt ของเรา นี่คือไฟล์ที่จะถูกลบ
- ต่อไปเราจะเรียกเมธอด File.Delete เพื่อลบไฟล์
เมื่อตั้งค่าโค้ดข้างต้นแล้ว และรันโครงการโดยใช้ Visual Studio ไฟล์ Example.txt จะถูกลบออกจากไดรฟ์ D
สรุป
- C# มีการดำเนินการ File หลายอย่างที่สามารถดำเนินการกับไฟล์ได้ การดำเนินการเหล่านี้ส่วนใหญ่เป็นส่วนหนึ่งของคลาส File
- หากคุณต้องการอ่านข้อมูลจากไฟล์ คุณสามารถใช้เมธอด File.ReadAlltext หรือ File.ReadAllLines
วิธีการไฟล์ | Descriptไอออน |
---|---|
แฟ้มที่มีอยู่ | File มีอยู่เมธอดที่ใช้ในการตรวจสอบว่ามีไฟล์ใดอยู่หรือไม่ |
ไฟล์.ReadAlllines | วิธีการนี้ใช้เพื่ออ่านบรรทัดทั้งหมดทีละบรรทัดในไฟล์ |
ไฟล์ ReadAllText | วิธีนี้ใช้เพื่ออ่านบรรทัดทั้งหมดในไฟล์พร้อมกัน |
ไฟล์.คัดลอก | วิธีการนี้ใช้ในการทำสำเนาไฟล์ที่มีอยู่ |
ไฟล์ลบ | วิธีการนี้ใช้ในการลบไฟล์ที่มีอยู่ |