On 07/17/03 19:41, Alan Horkan wrote: > On Thu, 17 Jul 2003, Christopher Curtis wrote: > >> even resemble XML. My "PREAMBLE" is valid XML. If they implement what >> they have written, they don't even bother with things like closing tags >> or putting parameters in quotes. > > A preamble, which is effectively full XML file, a boundry then more > information which is effectively another file. > Two files in one file, sounds like an ad-hoc container to me. As interesting as what I said was, I don't see how your comment logically follows. Anyway ... > I only used Winzip as an example, there are several programs which can > recover parts of zip files, so repairing damaged zip files is possible > (although I cant guess how difficult it is do it). This is something that shouldn't really be an issue. The ZIP format keeps the list of files at the end, so that if the file is clipped, the directory is lost, and you can recreate it by scanning the archive for delimiters. The reason it can be repared at all is because the most likely thing to get lost is the meta-information. So, after some research, I've decided that ar is a fine container format. My only conribution, which you may take as you will, would be to specify that the first entry in the archive is the descriptive catalog. Naturally I'm thinking the XML snippet I stated earlier, sans the data offset thing. The advantage to this is that you can detect if the file is corrupt, and you have two ways or accessing data: via meta-information only, or via the actual data entry. This means there's no need to scan through the archive to find its contents, and means that you can read the file using more and it works fine (as long as the XML file is uncompressed). The downside to using 'ar', really, is that WinZip doesn't support it. I haven't verified this - I hope a Windows user can do so for us. Just for reference, attached below is a C&P of an ar archive I just made: bash-2.05b$ echo 1 > file1 bash-2.05b$ echo 2 > file2 bash-2.05b$ ar r myar.xcf file* bash-2.05b$ (echo --; cat myar.xcf; echo --) -- !<arch> file1/ 1058492021 1000 1000 100644 2 ` 1 file2/ 1058492025 1000 1000 100644 2 ` 2 -- Chris