Мне нужно прочитать все файлы из папки и записать в буфер.Все файлы имеют одинаковое имя, кроме последней части (file_0000.mdf, file_0001.mdf, .... file_9999.mdf).Как я могу прочитать все файлы?testFolder содержит все файлы.Если я перейду к for_loop, он начнется с 0, но мои тестовые файлы начинаются с 0000 и так далее.Кроме того, мне нужен размер файла каждого отдельного тестового файла.Моя логика неверна, но я не знаю, как это исправить.Некоторый обновленный код также приведен ниже первого подхода.
#include <iostream>
#include <fstream>
#include <string>
int main(){
std::string path="C:\\testFolder\\";
std::string constName="file_";
std::string lastName = ".mdf";
std::fstream InputStream;
std::string fileWithPath;
for (int i=0; i <9999;i++){
fileWithPath=path+constName+std::to_string(static_cast<long long>
(i)+lastName;
InputStream.open(fileWithPath,std::ios::binary);
long InputFileSize= InputStream.tellg();
}
return 0;
}
Краткое обновление с использованием boost / filesystem.Нужны комментарии по этому подходу.
#include <boost/filesystem.hpp>
#include <boost/range/iterator_range.hpp>
std::string SourceFolder="C:\\testFolder\\";
path mDirectory(SourceFolder);
std::cout<<"Directory includes the following files"
if(is_directory(mDirectory)){
for(auto testFile=mDirectory.begin();testFile!=mDirectory.end();testFile++){
std::cout<< testFile->string()<<std::endline;
}