Exemplo n.º 1
0
KVUniqueNameList* KVDMS::GetFullListing(const Char_t* directory)
{
   // Create and fill TList with info (name, size, modification date)
   // on all files & containers in current directory
   // (default) or in given directory.
   // TList is filled with DMSFile_t objects which belong to the list, list must be deleted after use.

   longlist(directory);
   if (fout == "") {
      Error("GetListing", "Unknown directory %s", directory);
      return 0;
   }

   TObjArray* toks = fout.Tokenize("\n");
   KVUniqueNameList* list = new KVUniqueNameList(kTRUE);
   list->SetOwner(kTRUE);
   list->SetName(((TObjString*)(*toks)[0])->String().Remove(TString::kBoth, ' ').Data());
   for (int i = 1; i < toks->GetEntries(); i++) {
      TString tmp = ((TObjString*)(*toks)[i])->String().Remove(TString::kBoth, ' ');
      DMSFile_t* f = new DMSFile_t;
      if (IsContainer(tmp)) { // container
         f->SetName(gSystem->BaseName(tmp.Data()));
         f->SetIsContainer();
      } else {
         ExtractFileInfos(tmp, f);
      }
      list->Add(f);
   }
   delete toks;
   return list;
}