Menu

Folder/Directory trees

2004-07-13
2013-05-23
  • Ioldanach Dyfrgi

    Is there a status on the ability of par2 programs to handle the archival of a whole tree?

    I create some backup cds, photo and music archives in particular, by copying a set of directories into a new directory which I can then turn into an ISO and burn.  I'd like to be able to go into that directory, create a par with a command like

    > par2create -r15 -n1 -b30000 cdrecover.par .

     
    • Peter C

      Peter C - 2004-07-13

      The next version of par2cmdline will be able to handle folders.

       
    • Nobody/Anonymous

      Will it be after version 0.91? It's gonna be sooooo handy once this is implemented!

      Looking forward to it :)

      Good Job!

      Shinji.

       
    • Nobody/Anonymous

      Hi,

      I am working on directory support, but currently it does not work.

      who wants to apply this patch and try himself?

      this one prevents the software from creating absolut pathnames.
      we don't want that. first step for the others to follow.

      diff par2cmdline/commandline.cpp par2cmdline-0.4/commandline.cpp
      561c561
      <           string filename = *fn; //DiskFile::GetCanonicalPathname(*fn);
      ---
      >           string filename = DiskFile::GetCanonicalPathname(*fn);

      this patch ist just for console output and works fine, but does not change behavior at all.
      it removes splitting the filename into path/name parts.

      diff par2cmdline/par2creator.cpp par2cmdline-0.4/par2creator.cpp
      494a495
      >     DiskFile::SplitFilename(extrafile->FileName(), path, name);
      497c498
      <       cout << "Opening: " << extrafile->FileName() << endl;
      ---
      >       cout << "Opening: " << name << endl;

      this one should do the job, ie. applying the relative pathname to the .par2 file.
      but it does not work yet. I do not know why.

      diff par2cmdline/par2creatorsourcefile.cpp par2cmdline-0.4/par2creatorsourcefile.cpp
      63c63,72
      <   parfilename = diskfilename;
      ---
      >   string::size_type where;
      >   if (string::npos != (where = diskfilename.find_last_of('\\')) ||
      >       string::npos != (where = diskfilename.find_last_of('/')))
      >   {
      >     parfilename = diskfilename.substr(where+1);
      >   }
      >   else
      >   {
      >     parfilename = diskfilename;
      >   }

      have fun.

      JPT

       

Log in to post a comment.