C++ ile bir dizinin içindeki dosyalar nasıl listelenir?
Maalesef C++17 öncesinde bunu yapmanın kendiliğinden hazır bir yolu yok. Boost Dosyalama Modülü bu iş için fazlasıyla kullanılıyormuş mesela onu tavsiye edebilirim ya da MSDN den Microsoft un bu iş için olan kendi tavsiye kodunu inceleyebilirsiniz. Ancak Dirent.h adında daha hızlı işinizi görebileceğiniz bir header da bulunuyor, kodu hatta şu şekilde:
printf ("%s\n", ent->d_name); } closedir (dir);
Dir işaretçisi dizin yolunu temsil etmektedir. Tüm bunlar iyi hoş da yıl 2017 diyorsanız baya şanslısınız, C++14 te deneysel olarak kullanılan ama 2017 itibariyle yerleşik olan std::filesystem::directory_iterator mevcut, kullanımı da şöyle:
std::string yol = "dizinyolu";
for (auto & p : fs::directory_iterator(yol))
Ayrıca std::filesystem::recursive_directory_iterator ile de alt dizinler içerisinde dolaşabilirsiniz. Eğer merak ediyorsanız bu kütüphanenin C++14 teki kullanımı da namespace fs = std::experimental::filesystem satırı ile mümkün olabiliyordu.