Sử dụng Path.GetExtension() trong System.IO để trích xuất phần mở rộng của file (kể cả dấu chấm) từ đường dẫn. An toàn, đa nền tảng, không truy cập đĩa.
Ví dụ cơ bản
string myPath = @"D:\new\quiz.txt";
string ext = Path.GetExtension(myPath); // ".txt"
Mã nguồn hoàn chỉnh
using System;
using System.IO;
namespace Demo
{
class Program
{
static void Main(string[] args)
{
string myPath = @"D:\new\quiz.txt";
Console.WriteLine(Path.GetExtension(myPath));
}
}
}
Kết quả
.txt
Các trường hợp đặc biệt
| Đường dẫn | GetExtension | GetFileNameWithoutExtension |
|---|---|---|
file.txt | .txt | file |
.hidden | .hidden | (rỗng) |
archive.tar.gz | .gz | archive.tar |
noextension | (rỗng) | noextension |
path/to/.config | .config | (rỗng) |
C:\folder\ | (rỗng) | (rỗng) |
Lưu ý
- Luôn trả về phần mở rộng **kể cả dấu chấm** (
.txtkhông phảitxt). - Chỉ lấy phần mở rộng của **file cuối cùng** trong path.
- Không phân biệt chữ hoa/thường (trên Windows), nhưng trả về đúng case như trong input.
- Để lấy extension không dấu chấm:
Path.GetExtension(path).TrimStart('.').
Kết hợp với các phương thức khác
string path = @"D:\data\report.pdf";
string dir = Path.GetDirectoryName(path); // D:\data
string name = Path.GetFileName(path); // report.pdf
string nameNoExt = Path.GetFileNameWithoutExtension(path); // report
string ext = Path.GetExtension(path); // .pdf
// Đổi extension
string backupPath = Path.ChangeExtension(path, ".bak"); // D:\data\report.bak