Apabila bekerja dengan sistem fail, selalunya perlu untuk membezakan antara fail dan direktori. Perbezaan ini penting untuk melaksanakan tindakan yang sesuai berdasarkan pilihan pengguna. Sebagai contoh, dalam TreeView, pengguna boleh memutuskan sama ada untuk mengedit fail atau meneroka direktori.
Pendekatan biasa untuk membezakan antara fail dan direktori adalah dengan menggunakan Direktori. Kaedah GetDirectories. Walau bagaimanapun, kaedah ini boleh menjadi agak rumit, melibatkan pengendalian pengecualian dan semakan bersyarat.
Nasib baik, terdapat pendekatan yang lebih mudah dalam .NET. Kelas FileAttributes menyediakan akses kepada atribut fail untuk kedua-dua fail dan direktori. Dengan menggunakan kaedah GetAttributes, anda boleh mendapatkan semula atribut ini untuk mana-mana laluan tertentu.
FileAttributes attr = File.GetAttributes(@"c:\Temp");
Setelah anda mempunyai atribut fail, anda boleh membezakan antara fail dan direktori menggunakan operasi bitwise. Jika bit Direktori dalam atribut ditetapkan, ia menunjukkan direktori. Jika tidak, ia adalah fail.
if ((attr & FileAttributes.Directory) == FileAttributes.Directory) Console.WriteLine("It's a directory."); else Console.WriteLine("It's a file.");
Untuk .NET 4.0 dan yang lebih baru, sintaks yang dipermudahkan tersedia menggunakan kaedah HasFlag:
if (attr.HasFlag(FileAttributes.Directory)) Console.WriteLine("It's a directory."); else Console.WriteLine("It's a file.");
Dengan menggunakan kaedah ini, anda boleh menentukan jenis laluan dengan cekap dan melaksanakan yang sesuai tindakan berdasarkan pemilihan pengguna.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menentukan dengan Cekap sama ada Laluan ialah Fail atau Direktori dalam .NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!