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++ Bir Sayının 5'in Katı Olup Olmadığını Gösteren Örnek

C++ Rastgele Harf Yaratmak

C++ Rastgele Sayılardan En Büyük ve En Küçüğü Bulma Örneği

C++ Bir Sayının Kuvvetinin Hesaplanması

C++ Dosyanın Güncelleme Tarihini Değiştirme