>From a Root application (normal C++), you can do what you want:
read an ascii file, binary files,etc.
In your case, you should call the functions (whatever language)
to read your old file from a C++ compiled function.
This operation will probably be in a loop. Read a chunk of data,
transform this data into managable C++ objects from which
you fill a Root Tree.
We already have several applications of this style.
For example the h2root program distributed in $ROOTSYS/bin/h2root
converts all PAW format files into Root files.
The migration to a Tape Library should be the job of another service
(Hierarchical Storage Manager or like).
One can imagine a class MyFile derived from TFile and knowing
about your Tape Library.
You can also look at the class TNetFile to access files across the
network. TNetFilke assumes a Root daemon server rootd.
rootd is also part of the distribution kit.
rootd is a good source of inspiration to make an interface
to your storage system.
Rene Brun