Results 1 to 26 of 26

Thread: paf archiver

  1. #1
    Administrator Shelwien's Avatar
    Join Date
    May 2008
    Location
    Kharkov, Ukraine
    Posts
    3,267
    Thanks
    200
    Thanked 985 Times in 511 Posts

    paf archiver

    Here's a new console archiver.

    http://nishi.dreamhosters.com/u/paf_03_bin.rar

    Except for completely async i/o (there're 5 threads atm: scanning,reading,writing,(de)compression,stats)
    there's nothing special, and the only codec is ppmd_sh8, which is not very fast.

    But at least its a real multi-file archiver, with full unicode support, and its able to compress
    a directory tree losslessly - ie when we create an archive, extract a copy of data from it,
    then archive it again - the archive copies are (supposed to be) identical.

    Please test it and find me some bugs :)

  2. #2
    Member
    Join Date
    May 2009
    Location
    China
    Posts
    36
    Thanks
    0
    Thanked 0 Times in 0 Posts
    download and test

  3. #3
    Member Vacon's Avatar
    Join Date
    May 2008
    Location
    Germany
    Posts
    523
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Hello everyone,

    well, first test was converting your rar-archive to 7z = 57.459 Bytes and arc = 57.612 Bytes

    second quick test was challenge with spaces in names (output shortened):
    I:\Tmp\paf_03_bin\paf_03_bin>paf a test.paf *
    [...]
    d=4 f=27 in=4758802/4758802 out=1837429 speed=492833
    remark: folder "Test" was created by hand (output shortened):
    I:\Tmp\paf_03_bin\paf_03_bin>paf x test.paf Test
    r=0 l=1592/1593
    ppmd_order set to 8
    ppmd_memory set to 128
    ppmd_restore set to "reset"
    ppmd_affinity set to 00000001
    [...]
    Extracting "I:\Tmp\paf_03_bin\paf_03_bin\Test\test.paf":0
    d=4 f=27 in=1838363 out=4758802 speed=458679

    I:\Tmp\paf_03_bin\paf_03_bin>
    third test (more or less most recent version of DoubleCommander with bells and whistles):
    shortened:
    [...]
    d=64 f=397 in=45887455/45887455 out=12819867 speed=658026

    I:\Tmp\paf_03_bin\paf_03_bin>
    shortened:
    I:\Tmp\paf_03_bin\paf_03_bin>paf x test2.paf dc
    [...]
    Extracting "I:\Tmp\paf_03_bin\paf_03_bin\dc\test2.paf":0
    d=64 f=397 in=12830836 out=45887455 speed=589722

    I:\Tmp\paf_03_bin\paf_03_bin>
    edit 2:
    Yes, I promise to not again post such long logs! (corrected)

    edit 3:
    - in the log above (compressing DoubleCommander) there is a space shown that doesn't exist in the original log (between dc and theme and lower between wl and x).
    - What I found is, that paf adds the extracted archive to the list of files that were extracted and copies an entry into the extraction-folder with size 0 (see above -> Extracting "I:\Tmp\paf_03_bin\paf_03_bin\dc\test2.paf":0) . But that will be (most probably) not because of extraction, but because of the fact that the archive was created in the same folder as the source to compress resides. Hence it is "compressed" too.

    Best regards!
    Last edited by Vacon; 31st July 2010 at 20:48. Reason: next quick test

  4. #4
    Member Vacon's Avatar
    Join Date
    May 2008
    Location
    Germany
    Posts
    523
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Hello everyone,

    next test was on PDF-XChange Viewer portable 2.0.54.0 (copied into paf's folder, compressed with * = paf's folder was compressed too):
    test.paf = 5.997.441 Bytes
    uncompressed to sub-folder test and compressed again to test2.paf:
    test2.paf = 5.997.456 Bytes (possible reason = empty file test.paf with size = 0 bytes was included)
    repeated (without test.paf = 0 bytes):
    test3.paf = 5.997.434 Bytes
    moved all paf-s to another folder, cut the former extracted files, pasted into the original source-folder (all contained files overwritten)
    repeated:
    test4.paf = 5.997.361 Bytes

    Hmmm....

    again from scratch:
    copied PDF-Viewer into paf's folder:
    paf a test1.paf PDF-Viewer\*
    -> test1.paf with 5.944.727 Bytes
    erased PDF-Viewer
    created folder PDF-Viewer by hand
    paf x test1.paf PDF-Viewer
    paf a test2.paf PDF-Viewer\*
    -> test2.paf = 5.944.727 Bytes
    =>
    I:\Tmp\paf_03_bin\paf_03_bin>fc /b test1.paf test2.paf
    Vergleichen der Dateien test1.paf und TEST2.PAF
    FC: Keine Unterschiede gefunden


    I:\Tmp\paf_03_bin\paf_03_bin>
    Which means: no differences found!

    Best regards!

  5. #5
    Administrator Shelwien's Avatar
    Join Date
    May 2008
    Location
    Kharkov, Ukraine
    Posts
    3,267
    Thanks
    200
    Thanked 985 Times in 511 Posts
    > well, first test was converting your rar-archive to 7z = 57.459 Bytes and arc = 57.612 Bytes

    Its not the best that rar can do either.

    > second quick test was challenge with spaces in names:

    That should work, it uses unicode windows APIs, both for arguments and
    processed files.
    National filenames (and archive names) should be more interesting,
    I've even received a report about wrong codepage in archive name
    (although I don't convert it anywhere).

    > What I found is, that paf adds the extracted archive to the list of files

    Yes, I'm aware of that, and its kinda inconvenient, but I'm not yet sure
    how to deal with it - compare the file paths and skip the archive?
    But its possible to devise an alternative path for archive (via links etc),
    also potentially there could be multiple files (eg. volumes)...
    so for now not doing anything just seemed like a better idea

  6. #6
    Member Vacon's Avatar
    Join Date
    May 2008
    Location
    Germany
    Posts
    523
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Hello everyone,

    Quote Originally Posted by Shelwien View Post
    > What I found is, that paf adds the extracted archive to the list of files

    Yes, I'm aware of that, and its kinda inconvenient, but I'm not yet sure
    how to deal with it - compare the file paths and skip the archive?
    But its possible to devise an alternative path for archive (via links etc),
    also potentially there could be multiple files (eg. volumes)...
    so for now not doing anything just seemed like a better idea
    Just in case I hadn' been clear: I *guess* it has something to do with the fact that paf adds the archive, well, (kind of) to itself when the archive is created in the folder that has to be compressed. Possibly you could add an algo that scans the folder and lists the content *before* the archive is made -> the 0-byte entry will not be created.

    Best regards!
    P.S.: is it ok with you if I try to edit my log-files from above to shorten them?
    P.P.S.: I'll make some tests with german "Umlauten" ?, ?, ?, and ?-sign <-

  7. #7
    Member Vacon's Avatar
    Join Date
    May 2008
    Location
    Germany
    Posts
    523
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Hello everyone,

    german Umlaut
    Code:
    ?
    is preserved (so should be the rest too).
    packing:
    Code:
    I:\Tmp\paf_03_bin\paf_03_bin>paf a test-?.paf TrayMen?\*[...]
    Adding "I:\Tmp\paf_03_bin\paf_03_bin\TrayMen?\TrayMen?_3320_ger.exe":105984
    Adding "I:\Tmp\paf_03_bin\paf_03_bin\TrayMen?\TrayMen?_3320_ger.ini":3952
    d=9 f=65 in=262809/262809 out=103219 speed=193241
    
    I:\Tmp\paf_03_bin\paf_03_bin>
    un-packing:
    Code:
    I:\Tmp\paf_03_bin\paf_03_bin>paf x test-?.paf test
    [...]
    Extracting "I:\Tmp\paf_03_bin\paf_03_bin\test\TrayMen?_3320_ger.exe":105984
    Extracting "I:\Tmp\paf_03_bin\paf_03_bin\test\TrayMen?_3320_ger.ini":3952
    d=9 f=65 in=105391 out=262809 speed=158605
    
    I:\Tmp\paf_03_bin\paf_03_bin>
    with euro-sign
    Code:
    ?
    packing:
    Code:
    [...]Adding "I:\Tmp\paf_03_bin\paf_03_bin\test\?\tweakui.exe.lnk":579
    Adding "I:\Tmp\paf_03_bin\paf_03_bin\test\?\Wetterbox.exe.lnk":707
    d=9 f=67 in=373913/373913 out=147520 speed=227856
    
    I:\Tmp\paf_03_bin\paf_03_bin\test>
    unpacking:
    Code:
    [...]Extracting "I:\Tmp\paf_03_bin\paf_03_bin\test\test\?\Wetterbox.exe.lnk":707
    Extracting "I:\Tmp\paf_03_bin\paf_03_bin\test\test\?\Window List.windowlist":0
    d=9 f=67 in=149736 out=373913 speed=202772
    
    I:\Tmp\paf_03_bin\paf_03_bin\test>
    The euro-sign is displayed as question-mark. *BUT* when looking at the properties of the unpacked folder which is named
    Code:
    ?
    it's name is shown correctly!
    Btw: when typing "dir" on the command-line the euro-sign is displayed correctly too.

    edit: *grrr...* this forum has a problem with german Umlauten and the euro-sign.
    edit 2: sorry, no chance to get the signs correct. Even other fonts didn't make a difference.

    Best regards!
    Last edited by Vacon; 31st July 2010 at 21:01.

  8. #8
    Administrator Shelwien's Avatar
    Join Date
    May 2008
    Location
    Kharkov, Ukraine
    Posts
    3,267
    Thanks
    200
    Thanked 985 Times in 511 Posts
    That's ok, thanks.
    The displayed filenames are converted from unicode to current codepage, so that I can use plain printf().
    Unfortunately wprintf() in VS6 (and also gcc/mingw which links msvcrt.dll from VS6) is buggy and can't print
    non-english strings, and I don't want to use newer RTLs (they're bloated) and still too lazy to write a
    consistent printf/wprintf replacement.

  9. #9
    Programmer Bulat Ziganshin's Avatar
    Join Date
    Mar 2007
    Location
    Uzbekistan
    Posts
    4,498
    Thanks
    741
    Thanked 664 Times in 358 Posts
    you can set console codepage to utf8

  10. #10
    Administrator Shelwien's Avatar
    Join Date
    May 2008
    Location
    Kharkov, Ukraine
    Posts
    3,267
    Thanks
    200
    Thanked 985 Times in 511 Posts
    Thanks, I didn't consider that. That might be convenient actually, considering that internally I store filenames in utf8 anyway.
    One problem though is that I use XP 32bit and console here apparently doesn't support unicode either, so I won't see the difference

  11. #11
    Programmer Bulat Ziganshin's Avatar
    Join Date
    Mar 2007
    Location
    Uzbekistan
    Posts
    4,498
    Thanks
    741
    Thanked 664 Times in 358 Posts
    Code:
         if(!SetConsoleOutputCP(CP_UTF8)){
             printf("could not set console output code page \n");
             return 1;
         }
         if(!SetConsoleCP(CP_UTF8)){
             printf("could not set console input code page \n");
             return 1;
         }
     
         printf("Console output code page is %d\n",GetConsoleOutputCP());
         printf("Console input code page is %d\n",GetConsoleCP());

  12. #12
    Administrator Shelwien's Avatar
    Join Date
    May 2008
    Location
    Kharkov, Ukraine
    Posts
    3,267
    Thanks
    200
    Thanked 985 Times in 511 Posts
    Ugh, the fact that these SetXXX are supposedly able to fail doesn't really help, so I'd better just print things in unicode (eventually).

    Btw, I'd appreciate your opinion about adding archive file to archive (when source path/mask includes it).

  13. #13
    Programmer Bulat Ziganshin's Avatar
    Join Date
    Mar 2007
    Location
    Uzbekistan
    Posts
    4,498
    Thanks
    741
    Thanked 664 Times in 358 Posts
    every win api call may fail, so why use it at all?

    my opinion about adding archive to itself is that in 99% cases it will have just the same name. also, you can check realname of file. since situation like "paf a archive *" is VERY common, you shouldn't decline to handle it just because you don't have general solution

  14. #14
    Administrator Shelwien's Avatar
    Join Date
    May 2008
    Location
    Kharkov, Ukraine
    Posts
    3,267
    Thanks
    200
    Thanked 985 Times in 511 Posts
    > every win api call may fail, so why use it at all?

    Yeah, but this is harder... I suppose it may really fail,
    like in some older windows version, and then how should I
    handle that? By providing a fallback version?
    On other hand, WriteConsoleW would either work, or not,
    without other options like printing in raw utf8.

    > my opinion about adding archive to itself is that in 99%
    > cases it will have just the same name.

    Silently skipping a file just because it matches the
    current archive name is worse imho.

    > also, you can check realname of file.

    Yeah, I guess I'd have to, though its still only a partial solution.

    > since situation like "paf a archive *" is VERY common,
    > you shouldn't decline to handle it just because you don't
    > have general solution

    I know, and that's why I'm discussing it here.
    Just that I have too much ideas about it :)

    1. Creating the archive with a unique name, matching only that
    name (without the path), moving to requested name when its complete.
    2. Comparing the initial file cluster (ie acquired with GetFileInformationByHandle).
    Doesn't require additional work, but calling an extra API per file may
    be noticeable.
    3. Store an unique signature into the archive and check the data for it
    4. Discard all files opened for writing

  15. #15
    Member Vacon's Avatar
    Join Date
    May 2008
    Location
    Germany
    Posts
    523
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Hello everyone,

    Quote Originally Posted by Shelwien View Post
    [...]> my opinion about adding archive to itself is that in 99%
    > cases it will have just the same name.

    Silently skipping a file just because it matches the
    current archive name is worse imho.
    Though Bulat's point isn't far from reallity, I wouldn't rely on that too. There are scenarios where it could be named with additional date or stuff like that.

    Quote Originally Posted by Shelwien View Post
    [...]
    1. Creating the archive with a unique name, matching only that
    name (without the path), moving to requested name when its complete.
    2. Comparing the initial file cluster (ie acquired with GetFileInformationByHandle).
    Doesn't require additional work, but calling an extra API per file may
    be noticeable.
    3. Store an unique signature into the archive and check the data for it
    4. Discard all files opened for writing
    Though it's kind of science-fiction at this point of development, but number 4. isn't a good idea if users want to archive some directory with several files opened (C:\Windows for instance).

    Best regards!

  16. #16
    Administrator Shelwien's Avatar
    Join Date
    May 2008
    Location
    Kharkov, Ukraine
    Posts
    3,267
    Thanks
    200
    Thanked 985 Times in 511 Posts
    http://nishi.dreamhosters.com/u/paf_03a_bin.rar
    + FIX: paf tries to add the archive file to archive
    + FIX: some API calls get a size limit in bytes instead of wchars

    Apparently Sami's benchmark scripts rely on archive file exclusion too, so I had to fix it

    And as to "number 4", you can't expect anything from a file open for writing anyway, also system files are frequently also locked from reading too.
    Also its a good idea to use "shadow volumes" (see vssadmin.exe) for such tasks anyway.

    I guess there's a good reason why most archivers don't have this problem... they just scan and sort the files before creating an archive.
    But it annoys me when rar scans a huge directory for minutes without compressing anything, so I'm trying to do it differently.

  17. #17
    Member
    Join Date
    May 2008
    Location
    Germany
    Posts
    410
    Thanks
    37
    Thanked 60 Times in 37 Posts
    @shelwien: thank you very much for this new archiver-program

    for me it seems to work very well
    ---
    remark 1:
    ---
    PPMD codec options:
    "-oN" -- model order, N=0..255, default=8
    "-mN" -- model memory allocation, N=1..3100 (MBs), default=128
    "-r0" -- model reset on memory overflow
    "-r1" -- model reduction on memory overflow
    ---
    in my tests it compresses better with the options -o10 and -m64
    ---
    remark 2:
    ---
    the compress-ratio and speed is similar to 7zip with the following options:
    ---
    7za a db7z.zip -mm=ppmd -mmem=64m -mo=10 db.dmp
    ---

    @shelwien

    would it be possible to implement within the paf - program such a new algorithm like Schindler Transformation order 5 from bsc ?

    best regards

  18. #18
    Member Vacon's Avatar
    Join Date
    May 2008
    Location
    Germany
    Posts
    523
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Hello everyone,

    Quote Originally Posted by Shelwien View Post
    http://nishi.dreamhosters.com/u/paf_03a_bin.rar
    + FIX: paf tries to add the archive file to archive
    + FIX: some API calls get a size limit in bytes instead of wchars

    Apparently Sami's benchmark scripts rely on archive file exclusion too, so I had to fix it

    And as to "number 4", you can't expect anything from a file open for writing anyway, also system files are frequently also locked from reading too.
    Also its a good idea to use "shadow volumes" (see vssadmin.exe) for such tasks anyway.

    I guess there's a good reason why most archivers don't have this problem... they just scan and sort the files before creating an archive.
    But it annoys me when rar scans a huge directory for minutes without compressing anything, so I'm trying to do it differently.
    Well, so you have to choose between Pestilence and Cholera

    edit: sorry, I messed something up and did all from scratch:
    packing Free Video Converter (folder with 29.310.076 Bytes in size) inside paf's folder:
    Code:
    I:\Tmp\paf_03a_bin\paf_03a_bin>paf a test1.paf *
    [...]
    d=19 f=146 in=29481093/29481093 out=10849560 speed=469818
    
    I:\Tmp\paf_03a_bin\paf_03a_bin>
    deleted every file but paf.exe and test1.paf copied test1 to another folder and unpacked original-test1.paf:
    Code:
    I:\Tmp\paf_03a_bin\paf_03a_bin>paf x test1.paf
    ppmd_order set to 8
    ppmd_memory set to 128
    ppmd_restore set to "reset"
    ppmd_affinity set to 00000001
    [...]
    d=19 f=146 in=10853482 out=29481093 speed=422292
    
    I:\Tmp\paf_03a_bin\paf_03a_bin>
    No hint or warning regarding overwriting / skipping the file paf.exe that was running
    Even more scary -> the file test1.paf suddenly has size 0 bytes! <-
    Hint: that was the cause why I have done this a second time. Still have no clue if it's my system's or paf's fault...
    Anyway, deleted 0-Bytes test1.paf and re-packed the whole folder again:
    Code:
    I:\Tmp\paf_03a_bin\paf_03a_bin>paf a test2.paf *
    [...]
    d=19 f=146 in=29481093/29481093 out=10849560 speed=484543
    
    I:\Tmp\paf_03a_bin\paf_03a_bin>
    copied test1.paf back and compared:
    - test1.paf = 10.853.482 Bytes
    - test2.paf = 10.853.481 Bytes
    I guess fc.exe is needless...

    Best regards!
    Last edited by Vacon; 2nd August 2010 at 15:27.

  19. #19
    Member Vacon's Avatar
    Join Date
    May 2008
    Location
    Germany
    Posts
    523
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Hello everyone,

    I double-checked it several times:
    if the archive.paf is un-packed into the same folder as itself resides in, it's size is set to 0-Bytes :-/
    If it is un-packed into another folder, all is fine.
    At least this is true for my system, reproducable.

    Best regards!

  20. #20
    Administrator Shelwien's Avatar
    Join Date
    May 2008
    Location
    Kharkov, Ukraine
    Posts
    3,267
    Thanks
    200
    Thanked 985 Times in 511 Posts
    @joerg:
    > in my tests it compresses better with the options -o10 and -m64

    No -r1? Afaik 7-zip doesn't support that though, so its harder to compare :)

    Also afaik o8 is default for rar, and 128 is max ppmd memory for rar,
    that's the reason for defaults choice anyway.

    > the compress-ratio and speed is similar to 7zip with the following options:
    > 7za a db7z.zip -mm=ppmd -mmem=64m -mo=10 db.dmp

    Actually 7z is faster - see http://nishi.dreamhosters.com/u/paf02a.txt
    Also paf uses a ppmd vJ derivative, thus its compression is a bit better
    than 7z's ppmd vI.
    But my ppmd_sh8 was "unoptimized" for readability, so its normally slower
    than original vJ.

    > would it be possible to implement within the paf - program
    > such a new algorithm like Schindler Transformation order 5 from bsc ?

    Yes, but paf doesn't (yet?) have any support for out-of-order block
    processing so it would be slower than bsc.
    I can provide a "store mode" though, or maybe even support for
    an external backend. For "store mode" there's paf01 though :)
    And the plan is to eventually switch to my own codecs anyway - I just
    chose ppmd because I already made a convenient (for me) library from it
    before.
    Also, the paf purpose is a bit different, instead of directly competing
    with other archivers, its intended as a recompression platform, for eg
    http://nishi.dreamhosters.com/u/pjpg_v0_bin.rar

    @Vacon:
    > Even more scary -> the file test1.paf suddenly has size 0 bytes! <-

    Its even more scary than you think - paf would also remove r/o and system
    attributes in attempt to rewrite the file :)
    But archivers asking questions and waiting instead of working are
    also annoying for me, so that's my default :)
    If its really needed, I'd change it eventually, its not really a problem
    to add an overwrite control option and console input.

    > I guess fc.exe is needless...

    Note that it also compresses file timestamps there, and when you move
    files around, these change. In fact, they'd change even if you'd just
    read a file (the access timestamp).

    > if the archive.paf is un-packed into the same folder as itself resides in,
    > it's size is set to 0-Bytes :-/

    Its a feature :)
    Maybe I should fix some sharing flags though.
    Anyway, if it doesn't crash at that, that's good enough for me :)

  21. #21
    Member Vacon's Avatar
    Join Date
    May 2008
    Location
    Germany
    Posts
    523
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Hello everyone,

    Quote Originally Posted by Shelwien View Post
    @Vacon:
    > Even more scary -> the file test1.paf suddenly has size 0 bytes! <-

    Its even more scary than you think - paf would also remove r/o and system
    attributes in attempt to rewrite the file
    But archivers asking questions and waiting instead of working are
    also annoying for me, so that's my default
    If its really needed, I'd change it eventually, its not really a problem
    to add an overwrite control option and console input.

    > I guess fc.exe is needless...

    Note that it also compresses file timestamps there, and when you move
    files around, these change. In fact, they'd change even if you'd just
    read a file (the access timestamp).

    > if the archive.paf is un-packed into the same folder as itself resides in,
    > it's size is set to 0-Bytes :-/

    Its a feature
    Maybe I should fix some sharing flags though.
    Anyway, if it doesn't crash at that, that's good enough for me
    In the scenario I tested paf, it wouldn't bepossible to leave test1.paf in it's original place and to compare it to test2.paf because this "feature" erased it's content and set it to 0-Bytes.
    And if this will be a real-life feature (for versions yet to come), well, that possibly will not cause fun during support... Backup -> gone and afterwards one finds a bad cluster or something like that. You should inform users in capital red letters about that!

    Best regards!

  22. #22
    Administrator Shelwien's Avatar
    Join Date
    May 2008
    Location
    Kharkov, Ukraine
    Posts
    3,267
    Thanks
    200
    Thanked 985 Times in 511 Posts
    In fact, I still don't understand why do you want to add the archive file to archive and extract it to the same place %)

  23. #23
    Member Vacon's Avatar
    Join Date
    May 2008
    Location
    Germany
    Posts
    523
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Hello everyone,

    Quote Originally Posted by Shelwien View Post
    In fact, I still don't understand why do you want to add the archive file to archive and extract it to the same place %)
    Huh...? Did I?! No, I didn't!
    I tested the scenario of a user having a folder inside the folder where paf.exe is.
    - He wants to archive "*" = everything in this folder, including paf.exe
    - He types "paf a test.paf *" and hits "Enter"
    -> test.paf is created inside the folder where paf.exe is
    - He then wants to unpack test.paf
    - He creates the desired folder "test" by hand, since paf can only extract to a folder, but cannot create folders that are not inside an archive
    - he types "paf.exe x test.paf test"
    -> the archive test.paf is unpacked into the folder "test"
    => as one can see in my first test-posting the file "test.paf" and "test2.paf" were extracted from the archive *allthough* I didn't had a clue that this could happen.
    And that's the reason why you changed it, or better, because of Sami's benchmark.
    But when the user unpacks the test.paf inside the same folder where it was created from to re-create the structure this scary thing happens -> test.paf is set to 0-Bytes after successful extraction. Period.
    And now tell me, please, how does it happen, that a file that is (officially) not inside an archive can overwrite an existing file and that way destroy a valid archive? Feature...?
    edit: I tested again (just in case...):
    "paf x test paf test" extracts the archive to the folder "test" *without* the *wrong and unwanted* file "test.paf" / size 0-Bytes
    "paf x test.paf" extracts the archive to the folder where paf.exe and the source-archive are and sets test.paf to 0-Bytes. qed.

    Best regards!
    Last edited by Vacon; 3rd August 2010 at 00:51.

  24. #24
    Administrator Shelwien's Avatar
    Join Date
    May 2008
    Location
    Kharkov, Ukraine
    Posts
    3,267
    Thanks
    200
    Thanked 985 Times in 511 Posts
    > He creates the desired folder "test" by hand, since paf can only extract to a folder,
    > but cannot create folders that are not inside an archive

    Actually it can, that remark was obsolete

    > "paf x test paf test" extracts the archive to the folder "test" *without* the *wrong and unwanted* file "test.paf" / size 0-Bytes

    Thanks, I finally understood and was able to reproduce it.
    Apparently my previous fix only affected displayed files
    Fixed again and reuploaded 03a.

  25. #25
    Member Vacon's Avatar
    Join Date
    May 2008
    Location
    Germany
    Posts
    523
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Hello everyone,

    Quote Originally Posted by Shelwien View Post
    > He creates the desired folder "test" by hand, since paf can only extract to a folder,
    > but cannot create folders that are not inside an archive

    Actually it can, that remark was obsolete
    Well, maybe I misunderstood this:
    Code:
      paf x 1.paf Q:\xxx -- extract it as Q:\xxx\... [QUIRK: xxx path presumed to exist]
    Quote Originally Posted by Shelwien View Post
    > "paf x test paf test" extracts the archive to the folder "test" *without* the *wrong and unwanted* file "test.paf" / size 0-Bytes

    Thanks, I finally understood and was able to reproduce it.
    Apparently my previous fix only affected displayed files
    Fixed again and reuploaded 03a.
    Caution -> Ninja-files!
    Be warned, I'll test it

    edit: all went fine Thanks for fixing this.

    Best regards!
    Last edited by Vacon; 3rd August 2010 at 01:34.

  26. #26
    Administrator Shelwien's Avatar
    Join Date
    May 2008
    Location
    Kharkov, Ukraine
    Posts
    3,267
    Thanks
    200
    Thanked 985 Times in 511 Posts
    Sami tested it: http://compressionratings.com/comp.c....12b++paf+03a+
    As expected from ppmd, its not especially good, except for text data.
    I guess, results with higher memory usage (instead of default -m128) could be better, but are
    not available yet :)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •