Хотите получить файлы в порядке их создания

Я работаю над созданием программы быстрого чтения файлов на языке c/ C++, которая будет извлекать каждый файл в каталоге в том порядке, в котором они были сохранены (созданы). Я использую SFML и BOOST, но моя программа будет возвращать файлы только в случайном порядке. Я полагаю, это связано с порядком расположения файлов в b-дереве? Как мне заставить BOOST вернуть файлы в том порядке, в котором они были созданы?

Вот соответствующая часть кода:

#include <string>
#include <iostream>
#include <boost/filesystem.hpp>
#include "SFML/Graphics.hpp"
using std::cout;
using namespace boost::filesystem;
using namespace std;
....
path p (argv[1]);
....
for (directory_entry& x : directory_iterator(p)){
  ....
  fullPathName = x.path().string();
  filename = x.path().filename().string();
  stem = x.path().stem().string();  
  seqnum = stem.substr(4,5);
  extn = x.path().extension().string();

  cout << fullPathName << ", " << filename << ", " << stem << ", " <<
    seqnum << ", " << extn <<'\n'; 
}

Вот пример вывода:

../takes/test/snap00179.png, snap00179.png, snap00179, 00179,.png../takes/test/snap00321.png, snap00321.png, snap00321, 00321,.png../takes/test/snap00094.png, snap00094.png, snap00094, 00094,.png../takes/test/snap00121.png, snap00121.png, snap00121, 00121,.png../takes/test/snap00026.png, snap00026.png, snap00026, 00026,.png../takes/test/snap00024.png, snap00024.png, snap00024, 00024,.png../takes/test/snap00155.png, snap00155.png, snap00155, 00155,.png../ take /test/snap00065.png, snap00065.png, snap00065, 00065, .png ../takes/test/snap00015.png, snap00015.png, snap00015, 00015, .png ../takes/test/snap00075.png, snap00075.png, snap00075, 00075, .png ../takes/test/snap00017.png, snap00017.png, snap00017, 00017, .png

0 ответов

Другие вопросы по тегам