Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menggunakan Directory.GetFiles() dengan Cekap untuk Mendapatkan Berbilang Jenis Fail?

Bagaimanakah Saya Boleh Menggunakan Directory.GetFiles() dengan Cekap untuk Mendapatkan Berbilang Jenis Fail?

Barbara Streisand
Barbara Streisandasal
2025-01-26 19:11:09867semak imbas

How Can I Efficiently Use Directory.GetFiles() to Retrieve Multiple File Types?

dengan cekap mengambil pelbagai jenis fail menggunakan direktori.getfiles ()

perlu mengambil fail pelbagai jenis dari direktori dengan cekap?

adalah alat yang berguna, tetapi ia mempunyai batasan apabila berurusan dengan pelbagai sambungan fail. Semasa menggunakan "|" atau ";" Sebagai pembatas dalam corak carian tidak berfungsi, terdapat penyelesaian yang berkesan. Directory.GetFiles()

penyelesaian untuk .net 4.0 dan ke atas

untuk prestasi optimum dalam versi .net yang lebih baru, leverage

digabungkan dengan linq: Directory.EnumerateFiles()

<code class="language-csharp">var files = Directory.EnumerateFiles("C:\path", "*.*", SearchOption.AllDirectories)
    .Where(s => s.EndsWith(".mp3") || s.EndsWith(".jpg"));</code>
Pendekatan ini mula -mula mengambil semua fail secara beransur -ansur (meningkatkan prestasi berbanding dengan memuatkan segala -galanya sekaligus) dan kemudian menapis hasil menggunakan ekspresi lambda untuk menyimpan hanya

dan .mp3 fail. .jpg

penyelesaian untuk versi yang lebih tua. NET

Jika anda bekerja dengan versi yang lebih tua. NET, anda boleh menyesuaikan penyelesaian menggunakan

: Directory.GetFiles()

<code class="language-csharp">var files = Directory.GetFiles("C:\path", "*.*", SearchOption.AllDirectories)
    .Where(s => s.EndsWith(".mp3") || s.EndsWith(".jpg"));</code>
Ini memuat semua fail pada mulanya, kemudian menggunakan penapis LINQ yang sama.

Nota penting

  • Prestasi: Walaupun mudah, mungkin memperkenalkan sedikit prestasi overhead dalam direktori yang sangat besar berbanding dengan penyelesaian tersuai yang sangat dioptimumkan. Untuk aplikasi kritikal prestasi, lelaran manual mungkin lebih baik. Directory.EnumerateFiles()
  • sintaks path: Sentiasa masukkan laluan direktori anda dalam petikan berganda ("C: Path") untuk mengelakkan kesilapan.
Pendekatan halus ini menyediakan penyelesaian yang jelas dan cekap untuk mendapatkan pelbagai jenis fail menggunakan

atau rakan sejawatannya yang lebih efisien, Directory.GetFiles(), bergantung pada versi Rangka .NET anda. Directory.EnumerateFiles()

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Directory.GetFiles() dengan Cekap untuk Mendapatkan Berbilang Jenis Fail?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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