[code]// … ABC.hxx …
#include
#include
class headerFile {
public:
static std::vectorstd::string fileName; // static member declaration
};[/code] [code]// … ABC.cxx …
#include “TSystem.h”
#include “TSystemFile.h”
#include “TSystemDirectory.h”
#include “TList.h”
#include “TString.h”
#include
#include
#include “ABC.hxx”
std::vectorstd::string headerFile::fileName; // static member definition
void ABC()
{
const char *dirname = “C:/xyz”;
const char *suffix = “.data”;
const char *prefix = “Test_one”;
TString pwd(gSystem->pwd()); //Get a current directory
TSystemDirectory dir(dirname, dirname); //TSystemDirectory dir(directoy name, Path);
TList *files = dir.GetListOfFiles(); //Displays a list of all files
gSystem->cd(pwd.Data()); // bug fix for ROOT prior to 5.34
if (files) {
TSystemFile *file; //TSystemFile class is internally used by the TBrowser to represent files.
TString fname;
TIter next(files);
while ( (file = (TSystemFile*)next()) ) { //Iterating over a loop
fname = file->GetName();
if ( !(file->IsDirectory()) &&
(!prefix || !(*prefix) || fname.BeginsWith(prefix)) &&
(!suffix || !(*suffix) || fname.EndsWith(suffix)) ) {
std::cout << fname << std::endl;
headerFile::fileName.push_back(fname.Data());
}
} // while ...
} // if (files) …
delete files; // no longer needed
for (unsigned i = 0; i < headerFile::fileName.size(); i++) {
printf ("— %s\n", headerFile::fileName[i].c_str());
} // for …
} // ABC …[/code]