Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah saya boleh mengambil pelbagai jenis fail menggunakan direktori.getFiles () atau enumerateFiles ()?

Bagaimanakah saya boleh mengambil pelbagai jenis fail menggunakan direktori.getFiles () atau enumerateFiles ()?

DDD
Lepaskan: 2025-01-26 19:21:10
asal
683 orang telah melayarinya

How Can I Retrieve Multiple File Types Using Directory.GetFiles() or 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:

var files = Directory.EnumerateFiles("C:\path", "*.*", SearchOption.AllDirectories)
            .Where(s => s.EndsWith(".mp3") || s.EndsWith(".jpg"));
Salin selepas log masuk

Ini menapis fail terhitung dengan elegan berdasarkan sambungan yang ditentukan.

Untuk versi .NET yang lebih lama, pendekatan yang setanding boleh dilakukan:

var files = Directory.GetFiles("C:\path", "*.*", SearchOption.AllDirectories)
            .Where(s => s.EndsWith(".mp3") || s.EndsWith(".jpg"));
Salin selepas log masuk

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan