Giriş
Şu satırı dahil ederiz.
Constructor
Şu satırı dahil ederiz.
#include <boost/filesystem.hpp>
Bu sınıfın kullanımında bir sıkıntı var. Dizinleri dolaşırken eğer bir dizin okuma hakkı vermiyorsa exception fırlatıyor.Constructor
Şöyle yaparız.
Şöyle yaparız.
path
dirPath = ...;
recursive_directory_iterator dirBegin (dirPath);
recursive_directory_iterator dirEnd;
no_push metoduŞöyle yaparız.
path dir_path = ...;
const recursive_directory_iterator dirEnd;
recursive_directory_iteratorr curEntry (dir_path);
while (curEntry != dirEnd){
if (curEntry->path().filename() == L"system32")
{
curEntry.no_push();
}
else
{
...
}
++CurEntry;
}
Döngü İçinde Kullanmak - C++98
Şöyle yaparız.
Elimizde şöyle bir kod olsun.
Şöyle yaparız.
for (; dirBegin != dirEnd; ++dirBegin) {
path currentPath = *dirBegin;
...
}
Döngü İçinde Kullanmak - C++11Elimizde şöyle bir kod olsun.
using namespace boost::filesystem;
struct recursive_directory_range
{
typedef recursive_directory_iterator iterator;
recursive_directory_range(path p) : p_(p) {}
iterator begin() { return recursive_directory_iterator(p_); }
iterator end() { return recursive_directory_iterator(); }
path p_;
};
Şöyle yaparız.for (auto it : recursive_directory_range(dir_path))
{
std::cout << it << std::endl;
}
Vector'ü Doldurmak - C++11Şöyle yaparız.
std::vector<fs::path> paths { fs::recursive_directory_iterator {"..." }, {} };
Hiç yorum yok:
Yorum Gönder