C++ Bir Dizindeki Dosyaları Sıralama

C++ dilinde bir dizindeki dosyaları sıralamak için direk olarak bir özel fonksiyon bulunmamaktadır. Bunun yerine, sıralamak istediğiniz dosyaların isimlerini bir vektör içinde saklamanız ve daha sonra bu vektörü sort() fonksiyonu ile sıralamanız gerekmektedir.

Aşağıdaki kod örneğinde, "dosyaYolu" adında bir string değişken tanımlanmış ve bu değişkenin içeriği dizin yolunu belirtmektedir. Daha sonra, dirent.h kütüphanesindeki dirent struct'ı kullanılarak dizindeki dosyaların isimleri "dosyalar" adında bir vektör içinde saklanmıştir. Son olarak, "dosyalar" vektörü sort() fonksiyonu ile alfabetik olarak sıralanmıştır.

#include <iostream>
#include <vector>
#include <dirent.h>
#include <algorithm>

using namespace std;

int main() 
{
  string dosyaYolu = "/example/directory";
  vector<string> dosyalar;
  DIR *dir;
  struct dirent *ent;

  if ((dir = opendir (dosyaYolu.c_str())) != NULL) 
  {

    while ((ent = readdir (dir)) != NULL) {
      dosyalar.push_back(ent->d_name);
    }

    closedir (dir);

  } 
  else 
  {
    cout << "Dizin açılamadı" << endl;
    return EXIT_FAILURE;
  }

  sort(dosyalar.begin(), dosyalar.end());

  for (int i = 0; i < dosyalar.size(); i++) {
    cout << dosyalar[i] << endl;
  }

  return 0;

}


C++

İlginizi Çekebilir

C++ Bir Sayının 5'in Katı Olup Olmadığını Gösteren Örnek

C++ Yarıçap Girilen Bir Dairenin Çevre ve Alanını Bulma Örneği

C++ Döngü İle Bir Dizideki En Büyük Sayıyı Bulma Örneği

C++ Bir Dizideki Tek Sayıların Adetini Bulma Örneği

C++ Bir String İçinde Başka Bir Stringin Adetini Bulma Örneği