×

Làm Việc Với Tệp Tin và Thư Mục Trong C# - Hướng Dẫn Chi Tiết

 

Làm việc với các tệp tin và thư mục là một phần quan trọng của lập trình, đặc biệt khi cần lưu trữ, đọc, ghi, và quản lý dữ liệu. Trong C#, thư viện System.IO cung cấp các lớp và phương thức để làm việc với hệ thống tệp tin và thư mục. Dưới đây là hướng dẫn chi tiết về cách làm việc với các tệp tin và thư mục trong C#.

1. Làm Việc Với Tệp Tin

a. Đọc Tệp Tin

Có nhiều cách để đọc tệp tin trong C#. Dưới đây là một số cách phổ biến:

Sử dụng File.ReadAllText để đọc toàn bộ nội dung tệp tin vào một chuỗi:

using System;
using System.IO;

public class FileReadExample
{
    public static void Main()
    {
        string path = "example.txt";
        try
        {
            string content = File.ReadAllText(path);
            Console.WriteLine(content);
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error reading file: {ex.Message}");
        }
    }
}

Sử dụng StreamReader để đọc tệp tin từng dòng:

using System;
using System.IO;

public class StreamReaderExample
{
    public static void Main()
    {
        string path = "example.txt";
        try
        {
            using (StreamReader reader = new StreamReader(path))
            {
                string line;
                while ((line = reader.ReadLine()) != null)
                {
                    Console.WriteLine(line);
                }
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error reading file: {ex.Message}");
        }
    }
}

b. Ghi Tệp Tin

Sử dụng File.WriteAllText để ghi một chuỗi vào tệp tin:

using System;
using System.IO;

public class FileWriteExample
{
    public static void Main()
    {
        string path = "example.txt";
        string content = "Hello, World!";
        try
        {
            File.WriteAllText(path, content);
            Console.WriteLine("File written successfully.");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error writing to file: {ex.Message}");
        }
    }
}

Sử dụng StreamWriter để ghi từng dòng vào tệp tin:

using System;
using System.IO;

public class StreamWriterExample
{
    public static void Main()
    {
        string path = "example.txt";
        try
        {
            using (StreamWriter writer = new StreamWriter(path))
            {
                writer.WriteLine("Hello, World!");
                writer.WriteLine("This is another line.");
            }
            Console.WriteLine("File written successfully.");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error writing to file: {ex.Message}");
        }
    }
}

c. Kiểm Tra Sự Tồn Tại Của Tệp Tin

using System;
using System.IO;

public class FileExistenceExample
{
    public static void Main()
    {
        string path = "example.txt";
        if (File.Exists(path))
        {
            Console.WriteLine("File exists.");
        }
        else
        {
            Console.WriteLine("File does not exist.");
        }
    }
}

2. Làm Việc Với Thư Mục

a. Tạo Thư Mục

using System;
using System.IO;

public class DirectoryCreateExample
{
    public static void Main()
    {
        string path = "exampleDirectory";
        try
        {
            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
                Console.WriteLine("Directory created successfully.");
            }
            else
            {
                Console.WriteLine("Directory already exists.");
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error creating directory: {ex.Message}");
        }
    }
}

b. Xóa Thư Mục

using System;
using System.IO;

public class DirectoryDeleteExample
{
    public static void Main()
    {
        string path = "exampleDirectory";
        try
        {
            if (Directory.Exists(path))
            {
                Directory.Delete(path, true); // Tham số thứ hai 'true' để xóa đệ quy
                Console.WriteLine("Directory deleted successfully.");
            }
            else
            {
                Console.WriteLine("Directory does not exist.");
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error deleting directory: {ex.Message}");
        }
    }
}

c. Liệt Kê Tệp Tin và Thư Mục Con

Liệt kê tệp tin trong một thư mục:

using System;
using System.IO;

public class DirectoryListFilesExample
{
    public static void Main()
    {
        string path = "exampleDirectory";
        try
        {
            if (Directory.Exists(path))
            {
                string[] files = Directory.GetFiles(path);
                foreach (string file in files)
                {
                    Console.WriteLine(file);
                }
            }
            else
            {
                Console.WriteLine("Directory does not exist.");
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error listing files: {ex.Message}");
        }
    }
}

Liệt kê thư mục con trong một thư mục:

using System;
using System.IO;

public class DirectoryListDirectoriesExample
{
    public static void Main()
    {
        string path = "exampleDirectory";
        try
        {
            if (Directory.Exists(path))
            {
                string[] directories = Directory.GetDirectories(path);
                foreach (string directory in directories)
                {
                    Console.WriteLine(directory);
                }
            }
            else
            {
                Console.WriteLine("Directory does not exist.");
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error listing directories: {ex.Message}");
        }
    }
}

Tổng Kết

Làm việc với tệp tin và thư mục trong C# rất linh hoạt và mạnh mẽ nhờ vào thư viện System.IO. Bạn có thể dễ dàng đọc, ghi, kiểm tra sự tồn tại, tạo và xóa tệp tin và thư mục cũng như liệt kê các tệp tin và thư mục con. Việc hiểu và sử dụng đúng các lớp và phương thức trong System.IO sẽ giúp bạn quản lý tệp tin và thư mục một cách hiệu quả và an toàn.

Comments