ROOT logo
#include "hzip.h"


//_HADES_CLASS_DESCRIPTION
////////////////////////////////////////////////////////////////////////////
// HZip
//
// A helper class to read/work with zip file containing
// many root files. Those files can be typically produced
// by :
//    zip -j -n root myzipname myrootfiles
//
// Note: root files will not be compressed, directory names
// ignored. It's a flat files structure. Purpose of the
// ziping of many root files into on zip archive is
// to improve the handling of many small files and reduce
// the load on the file system.
//
// To make the daily work more easy a command line executable hzip
// is provided to produce and work with those zip files:
//
// usage: hzip -o zipfile [-i filefilter] [-f filelist] [-u outputdir] [-msth]
//	          -f input ascii filelist (1 file per line)
//                -h help
//                -i input filefilter (like "be*.root")
//                -l list file in zip files
//	          -m maxsize of file [bytes] (default = 2 Gbyte, will be splitted if larger)
//	          -o outputzip file name (required)
//                -s save mode. do not overide existing zip files (default is overwrite)
//	          -t test. show what would be done
//	          -u dir unzip zip files to dir
//                -w print in which file membername is contained
//	           examples:
//                    test zip root files      : hzip -t -o test.zip -i "/mydir/be*.root"
//	              zip root files           : hzip -o test.zip -i "/mydir/be*.root"
//	              zip root files from list : hzip -o test.zip -f filelist
//	              unzip root files to dir  : hzip -i "test_*.zip" -u /mydir
//	              list files in zip files  : hzip -i "test_*.zip" -l
//
// from the normal terminal.
// HZip provides the functionality to access, list and files from
// a root macro.
//
//--------------------------------------------------------------------------
// examples:
//
//  TChain* chain =  new TChain("myTree");
//  HZip::makeChain("my.zip",chain);            // add all root files to chain
//  HZip::makeChainGlob("my*.zip",chain);       // add all root files of all matching zip files to chain
//  HZip::makeChainList("filelist.txt",chain);  // add all root files of all zip files in filelist to chain
//
//  chain->GetEntries(); // access all files and get number of entries
//  chain->ls();         // list all files in chain with number of entries
//
//  Bool_t HZip::isInside("my.zip","my.root"); // is my.root contained in my.zip?
//  Int_t  HZip::list("my.zip",".*");          // list all files which match the pattern
//  Int_t  HZip::getList("my.zip",list,".*");  // return to TList list all files which match the pattern
//  Bool_t HZip::unzip("my.zip","mydir");      // unzip file to directory
//  Bool_t HZip::addFile("my.zip","my.root");  // add this root file to the zip file
//  Bool_t HZip::addFiles("my.zip",list);      // add all root files from TList list to the zip file
////////////////////////////////////////////////////////////////////////////

ClassImp(HZip)


 hzip.cc:1
 hzip.cc:2
 hzip.cc:3
 hzip.cc:4
 hzip.cc:5
 hzip.cc:6
 hzip.cc:7
 hzip.cc:8
 hzip.cc:9
 hzip.cc:10
 hzip.cc:11
 hzip.cc:12
 hzip.cc:13
 hzip.cc:14
 hzip.cc:15
 hzip.cc:16
 hzip.cc:17
 hzip.cc:18
 hzip.cc:19
 hzip.cc:20
 hzip.cc:21
 hzip.cc:22
 hzip.cc:23
 hzip.cc:24
 hzip.cc:25
 hzip.cc:26
 hzip.cc:27
 hzip.cc:28
 hzip.cc:29
 hzip.cc:30
 hzip.cc:31
 hzip.cc:32
 hzip.cc:33
 hzip.cc:34
 hzip.cc:35
 hzip.cc:36
 hzip.cc:37
 hzip.cc:38
 hzip.cc:39
 hzip.cc:40
 hzip.cc:41
 hzip.cc:42
 hzip.cc:43
 hzip.cc:44
 hzip.cc:45
 hzip.cc:46
 hzip.cc:47
 hzip.cc:48
 hzip.cc:49
 hzip.cc:50
 hzip.cc:51
 hzip.cc:52
 hzip.cc:53
 hzip.cc:54
 hzip.cc:55
 hzip.cc:56
 hzip.cc:57
 hzip.cc:58
 hzip.cc:59
 hzip.cc:60
 hzip.cc:61
 hzip.cc:62
 hzip.cc:63
 hzip.cc:64
 hzip.cc:65