5. Open the cabinet with an archive viewer (such as 7-Zip), and check the modified date of test.txt.

I tested this with makecab.exe 5.1.2600.5512(WindowsXP), and the date is 1/1/2002 instead of 4/4/2004.

[update: Only this version has this problem, other version of makecab.exe works fine.]

This problem become serious to me when I make cabinets across different folders. I often copy the files between folders and copying the files changes the file creation date of the new file. Then, makecab both files, and the two cabinets will be different even though their contents are the same file.

In contrast, cabarc.exe (another cabinet utility), did this right. In the step 4, trying this instead of makecab will give you the correct file modified date.

cabarc /m LZX:21 N test.tx_ test.txt

HFSLIP could use another version of makecab or cabarc here to eliminate the problem.

Share this post

Link to post

Share on other sites

This problem become serious to me when I make cabinets across different folders. I often copy the files between folders and copying the files changes the file creation date of the new file. Then, makecab both files, and the two

That's just the way how to compare dirs. For example, I use TC for "compare by content" to be really sure if (sub)folders have the same content.

I've fixed the above CABARC.exe based script so it can work for all files regardless of their extension.

Do you have in mind to implement this to HFSLIP? If yes:

I think it should be enough to place a "correct" makecab.exe beside HFSLIP. Makecab is called often from HFSLIP so there are many places to modify.

Placing a correct makecab.exe next to HFSLIP to avoid this minor (sorry ;-P ) problem would be the better solution.

Share this post

Link to post

Share on other sites

Nobody complained about makecab since the script was introduced in 2005. However, if the makecab.exe you have uses the same switches as the one that comes with the OS, then place it alongside the script cmd file and call it a day. I haven't tested it, and the script wasn't developed with it, so you could run into errors.