Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah saya boleh mengambil pelbagai jenis fail menggunakan direktori.getFiles () atau enumerateFiles ()?
Mengambil Fail Pelbagai Jenis dengan Cekap
Kaedah Directory.GetFiles()
, walaupun nampak mudah, tidak secara langsung menyokong penapis jenis fail berbilang. Walau bagaimanapun, beberapa strategi berkesan wujud untuk mengatasi had ini.
Untuk versi .NET 4.0 dan yang lebih baru, kaedah EnumerateFiles()
menawarkan penyelesaian unggul menggunakan klausa Where()
LINQ:
<code class="language-csharp">var files = Directory.EnumerateFiles("C:\path", "*.*", SearchOption.AllDirectories) .Where(s => s.EndsWith(".mp3") || s.EndsWith(".jpg"));</code>
Ini menapis fail terhitung dengan elegan berdasarkan sambungan yang ditentukan.
Untuk versi .NET yang lebih lama, pendekatan yang setanding boleh dilakukan:
<code class="language-csharp">var files = Directory.GetFiles("C:\path", "*.*", SearchOption.AllDirectories) .Where(s => s.EndsWith(".mp3") || s.EndsWith(".jpg"));</code>
Walau bagaimanapun, adalah penting untuk diingat bahawa GetFiles()
mengembalikan tatasusunan lengkap dalam ingatan. Ini boleh membawa kepada isu prestasi dan penggunaan memori yang tinggi, terutamanya apabila berurusan dengan direktori yang luas. Oleh itu, menggunakan EnumerateFiles()
amat disyorkan untuk kecekapan optimum.
Atas ialah kandungan terperinci Bagaimanakah saya boleh mengambil pelbagai jenis fail menggunakan direktori.getFiles () atau enumerateFiles ()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!