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 100'e Kadar Asal Sayı Toplamı Örneği

C++ Fibonacci Serisinde N'inci Terimi Bulma Örneği

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

C++ Bir Stringin İlk Orta ve Son Karakterini Alma Örneği

C++ Bir Diziyi Ters Çevirme