Try: root[0] .L list_files.cxx
root[1] list_files("N:/", ".data"); // list all "N:/*.data" files
root[2] list_files("N:/", ".data", "abc"); // list all "N:/abc*.data" files
using the following “list_files.cxx”: [code]#include “TSystem.h”
#include “TSystemFile.h”
#include “TSystemDirectory.h”
#include “TList.h”
#include “TString.h”
#include
void list_files(const char *dirname = “C:/root/folder/”,
const char *suffix = “.root”,
const char *prefix = “”)
{
if (!dirname || !(*dirname)) return; // just a precaution
TString pwd(gSystem->pwd());
TSystemDirectory dir(dirname, dirname);
TList *files = dir.GetListOfFiles();
gSystem->cd(pwd.Data()); // bug fix for ROOT prior to 5.34
if (files) {
TSystemFile file;
TString fname;
TIter next(files);
while ( (file = (TSystemFile)next()) ) {
fname = file->GetName();
if ( !(file->IsDirectory()) &&
(!prefix || !(*prefix) || fname.BeginsWith(prefix)) &&
(!suffix || !(*suffix) || fname.EndsWith(suffix)) ) {
std::cout << fname.Data() << std::endl;
}
}
}
delete files;
}[/code]