This can be useful as well:
http://root.cern.ch/root/htmldoc/TFileSet.html#TFileSet:description
If you would follow the example below don't forget ending up with
gSystem->FreeDirectory(dirp)
to avoid the memory leaks and some "problems"
Valery
----- Original Message -----
From: Valeriy Onuchin <onuchin@sirius.ihep.su>
To: Jan Malinowski <malinow@krysia.uni.lodz.pl>
Cc: <roottalk@cern.ch>
Subject: Re: [ROOT] open all data files
> Jan Malinowski wrote:
>
> >
> >
> > Dear Rooters,
> >
> > While programing in C or C++ under Win95 or DOS
> > I open the files from directory with ' findfirst( .. ) ' and ' findnext(
> > .. ) ' functions.
> >
> > struct ffblk fb;
> > char WildCard[13] = "*.*";
> > done = findfirst( WildCard, &fb, 0 );
> > while ( !done ) {
> > fin = fopen( fb.ff_name, "rt" );
> > ..........
> > fclose( fin );
> > done = findnext( &fb );
> > }
> >
> > This functions are located in "dir.h" file.
> > I have instaled ROOT under Win95. I cannot include "dir.h" file.
> > I have chacked: it is not in "./include/" directory.
> >
> > In what way can I do the same file opening in ROOT ?
> > Regards,
> > Janek.
>
> Hi Janek,
> check this
>
> file://___________________________________________________________________
> void ls(const char* inDir, const char * ext=".h")
> {
> // Lists all files in the inDir with extension ext
>
> char* dir = gSystem->ExpandPathName(inDir);
> void* dirp = gSystem->OpenDirectory(dir);
>
> if( !dirp ) {
> printf("Failed to open directory: %d\n",inDir);
> return;
> }
>
> const char* entry;
> const char* filename;
> TString str;
>
> while( entry=gSystem->GetDirEntry(dirp) ) {
> str = entry;
>
> if( str.EndsWith(ext) ) {
> filename = gSystem->ConcatFileName(dir,entry);
> printf("File %s\n",filename);
> }
> }
> }
>
> to print out all header file in $ROOTSYS/include try
>
> ls("$(ROOTSYS)/include",".h")
>
> Regards. Valeriy
>
>
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:37 MET