Re: long file names in TFile ctor

From: Rene Brun (Rene.Brun@cern.ch)
Date: Fri Nov 12 1999 - 09:02:17 MET


Hi Victor,
The changes I made to TString::Streamer are backward compatible.
I tested the system with file names up to 1000 characters long.

Rene

Victor Perevoztchikov wrote:
> 
> Hi Rene,
> > Two changes are required:
> >  - in TFile::Init remove limitation to 300 chars
> >  - in TString::Streamer: implement support for long strings
> 
> One more. System::ExpandPathName supposed the limit 256
> 
> And concerning to TString::Streamer it could be backward incompatible with old
> .root files
> 
> Victor
> PS. Actually I can not imagine who can use such terrible file names
> 
> Rene Brun wrote:
> >
> > Hi David,
> > I have fixed this problem in my development version 2.23/09.
> > Two changes are required:
> >  - in TFile::Init remove limitation to 300 chars
> >  - in TString::Streamer: implement support for long strings
> >
> > Rene Brun
> >
> > On Thu, 11 Nov 1999, David Kirkby wrote:
> >
> > > Hi - I have found a problem opening root files which were created with
> > > very long path names:
> > >
> > >   *******************************************
> > >   *                                         *
> > >   *        W E L C O M E  to  R O O T       *
> > >   *                                         *
> > >   *   Version   2.23/07   27 October 1999   *
> > >   *                                         *
> > >   *  You are welcome to visit our Web site  *
> > >   *          http://root.cern.ch            *
> > >   *                                         *
> > >   *******************************************
> > >
> > > FreeType Engine v1.1 used to render TrueType fonts.
> > >
> > > CINT/ROOT C/C++ Interpreter version 5.14.20, Oct 20 1999
> > > Type ? for help. Commands must be C++ statements.
> > > Enclose multiple statements between { }.
> > > root [0] TFile f(...veryLongPathHere..., "CREATE");
> > > root [1] f.Close();
> > > root [2] TFile g(...veryLongPathHere..., "READ");
> > > Error in <TFile::Init>: Cannot read directory info
> > >
> > > The error is generated when the size of the TNamed base class of the TFile
> > > object exceeds 300 bytes. In my test, I used a path 145 characters long.
> > > Presumably this is intended as a sanity check before reading Mb of 'name'
> > > data, but isn't a 300 byte limit too short, especially since the ctor
> > > doesn't make any check on the length when you create the file.
> > >
> > > Can this 300 byte limit be increased significantly or removed in a future
> > > release, or is there a good reason to keep it?
> > >
> > > David Kirkby
> > > Stanford University
> > > BaBar/SLAC
> > >
> 
> --
> Victor M. Perevoztchikov   perev@bnl.gov  perev@vxcern.cern.ch
> Brookhaven National Laboratory MS 510A PO Box 5000 Upton NY 11973-5000
> tel office : 631-344-7894; fax 631-344-4206; home 631-345-2690



This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:42 MET