ZIPing individual NTFS File Streams

#1
Hi,

ver /r displays

Code:
TCC  13.00.26   Windows XP [Version 5.1.2600]
TCC Build 26   Windows XP Build 2600  Service Pack 3
I will have to live with the fact that I cannot use ZIP to archive complete NTFS File Streams.

So, I decided to see if the following would work;

Code:
zip mystuff.zip "Line Of Credit.qpw" "Line Of Credit.qpw:Projection.qpw"
<= C:\jlc\Line Of Credit.qpw
<= C:\jlc\Line Of Credit.qpw:Projection.qpw
That worked. Now, when I do a;

Code:
zip /v mystuff.zip
2011-10-12  20:36         64,020  63%  Line Of Credit.qpw
2011-10-12  20:36          4,096  75%  Projection.qp
Note that the w is missing form the Projection.qp file.

When I do;

Code:
unzip mystuff.zip Projection.qp
=> C:\jlc\Projection.qp
I have my Projection.qp file. Next;

Code:
ren Projection.qp Projection.qpw
C:\jlc\Projection.qp -> C:\jlc\Projection.qpw
     1 file renamed
I then type Projection.qpw and Quattro Pro launches and loads my file. So, everything is getting ZIPped okay, with the above anomaly.

I tried this with other NTFS File Streams that I have, to see if this was just a one-off fluke, with the same result. For example;

Code:
zip /v mytext.zip
2011-10-12  08:10          1,459  48%  ram.txt
2011-10-12  08:10          1,447  49%  original.tx
Note the last t missing from original.tx

I figure that, while ZIPing the NTFS File Streams this way loses the streams in a file, it eliminates the need to use Microsoft Backup, and I still get all the files into one .ZIP file.

Any way to work around the missing last letter of the extension of an NTFS File Stream when ZIPping them?

Joe
 

rconn

Administrator
Staff member
May 14, 2008
10,572
97
#2
So, I decided to see if the following would work;

Code:
zip mystuff.zip "Line Of Credit.qpw" "Line Of Credit.qpw:Projection.qpw"
<= C:\jlc\Line Of Credit.qpw
<= C:\jlc\Line Of Credit.qpw:Projection.qpw
That worked.
No, that didn't work. Try looking at it with something else (like WINZIP) and you'll see that it removed the entire filename and the last character of the stream name when it saved the name.

However, it isn't TCC, it's the zip library doing it. I'll pass it on to the developers, but I doubt they're going to do much more than say "it doesn't support streams."

I think the only way you're going to be able to do this with ZIP is to write the streams to temp files, zip them, and delete the temp files.
 
#3
No, that didn't work. Try looking at it with something else (like WINZIP) and you'll see that it removed the entire filename and the last character of the stream name when it saved the name.
It did not remove the entire filename, just the last character of the stream name. If it had removed the entire filename, I would not have been able to use UNZIP to extract the file. Once I extracted the file, I had to rename the file to include the missing last character of the stream name file.

Regardless, I have found a program called WinRAR that does archive NTFS File Streams, an example;

Code:
rar a -OS mystuff ram.txt
Looking at the archive;

Code:
rar l mystuff

RAR 3.93   Copyright (c) 1993-2010 Alexander Roshal   15 Mar 2010
Shareware version         Type RAR -? for help

Archive mystuff.rar

 Name             Size   Packed Ratio  Date   Time     Attr      CRC   Meth Ver
-------------------------------------------------------------------------------
 ram.txt          1459      788  54% 12-10-11 08:10  .....A.   6C359295 m3b 2.9
 :original.txt
-------------------------------------------------------------------------------
    1             1459      788  54%
This does what I want, so I will have to go with this package for now.

Joe
 
Jul 1, 2008
81
0
71
Montreal
#5
Regardless, I have found a program called WinRAR that does archive NTFS File Streams,
Segway from another thread, Rar lets you configure archives to bear the timestamp of the youngest file in the archive. I discovered it at v1.93 and I've had a license since v2.04, a lifetime in computer years. RAR maintained the best average compression ratio for many years, until 7Zip showed up. 7Zip creates smaller archives but its features don't come close to what WinRAR can do. Rar is currently at v4.01 (production) v4.10 (beta). Enjoy.
--
Peter