C++ Dosyaları Uzantıya Göre Arama

"Dosyaları Uzantıya Göre Arama" işlemi, bir klasör içindeki dosyaların belirli bir uzantıya sahip olanlarını bulmak için yapılan bir işlemdir. Bu işlem C++ dilinde dirent.h kütüphanesi ve readdir fonksiyonu kullanılarak yapılabilir.

Aşağıdaki kod örneğinde, kullanıcıdan aranacak uzantı isteyip, bu uzantıya sahip dosyaların isimlerini ekrana yazdıran bir program yer almaktadır.

#include <iostream>
#include <dirent.h>
#include <string>

using namespace std;

int main() 
{
  string klasorYolu, aranacakUzanti;
  cout << "Klasor yolunu girin: ";
  cin >> klasorYolu;
  cout << "Aranacak uzantiyi girin: ";
  cin >> aranacakUzanti;
  
  DIR *klasor;
  struct dirent *dosya;
  
  klasor = opendir(klasorYolu.c_str());

  if (klasor) 
  {

    while ((dosya = readdir(klasor)) != NULL) {
      string dosyaAdi = dosya->d_name;
      int noktaIndex = dosyaAdi.find(".");
      string dosyaUzantisi = dosyaAdi.substr(noktaIndex + 1);

      if (dosyaUzantisi == aranacakUzanti) {
        cout << dosyaAdi << endl;
      }

    }

    closedir(klasor);
  }
  
  return 0;
}

Yukardaki kodda ilk olarak kullanıcıdan aranacak klasör yolu ve uzantı bilgileri istenir. Daha sonra, opendir fonksiyonu ile belirtilen klasör yolu açılır ve readdir fonksiyonu ile klasör içindeki dosyalar okunur. Her bir dosya için, dosya adındaki noktanın indeksi bulunur ve dosya adından dosya uzantısı ayıklanır. Eğer dosya uzantısı aranılan uzantıya eşitse, dosya adı ekrana yazdırılır. Son olarak, closedir fonksiyonu ile klasör kapatılır.


C++

İlginizi Çekebilir

C++ 1'den N'e Kadar Asal Sayıları Bulma Örneği

C++ Bir Stringi Ters Çevirmek

C++ Bir Dictionary'i Filtreleyip Yeni Bir Dictionary Yaratma Örne ...

C++ Bir Sayının Faktöriyelini Bulma Örneği

C++ Bir Listede Birden Çok Olan Elemanları Göstermek