Jonas Sundstrom wrote on Sat, 26 Jul 2003 00:15:52 +0200 CEST: > Zip is -the- BeOS format. No other format, afaik, > preserves the extended attributes of the Be filesystem. > The system defaults and the apps that come with the OS > provides the user with a blessed way. A best practice. I'm working on one, since I need to store AGMS links (like MacOS alias or Unix hard links) as well as attributes, files, directories, indices and whatever odd things I come up with for my RAM file system. So rather than hacking up ZIP, I've got a simple text file format, that's optionally run through zLib's Deflate (and maybe later bzip2) to get compression similar to ZIP. FYI here's a sample of the uncompressed text format of a Packed Archived File System file: { Create Index Name=BEOS:APP_SIG PrimitiveType=CSTR PosixSize=16384 PosixOwner=0 PosixGroup=0 DateCreatedMicrosecondsSince1970=1057759330000000 DateModifiedMicrosecondsSince1970=1057759330000000 } { Create Index Name=MAIL:subject PrimitiveType=CSTR PosixSize=25600 PosixOwner=0 PosixGroup=0 DateCreatedMicrosecondsSince1970=1057760021000000 DateModifiedMicrosecondsSince1970=1057760021000000 } [...] { Create Thing PosixEquivalentThing=File Path=in/[openbeos] ZipOMatic beta 1 20030725181552 Jonas Sundstrom PosixSize=4354 PosixOwner=0 PosixGroup=0 PosixMode=00644 DateCreatedMicrosecondsSince1970=1059233039000000 DateAccessedMicrosecondsSince1970=1059241828000000 DateModifiedMicrosecondsSince1970=1059233039000000 DateMetaChangedMicrosecondsSince1970=1059233039000000 Data=Return-Path: <openbeos-bounce@xxxxxxxxxxxxx>\r\nReceived: from turing.f\ reelists.org ([206.53.239.180])\r\n by fep04-mail.bloor.is.net.cable.\ rogers.com\r\n (InterMail vM.5.01.05.12 201-253-122-126-112-20020820)\ with ESMTP\r\n id <20030725221525.IZPJ266211.fep04-mail.bloor.is.net\ .cable.rogers.com@xxxxxxxxxxxxxxxxxxxx>\r\n for <agmsmith@xxxxxxxxxx>\ ; Fri, 25 Jul 2003 18:15:25 -0400\r\nReceived: from turing (localhost [127.0.0\ .1])\r\n\tby turing.freelists.org (Avenir Technologies Mail Multiplex) with ES\ MTP\r\n\tid B2ECE395271; Fri, 25 Jul 2003 17:22:03 -0500 (EST)\r\nReceived: wi\ th ECARTIS (v1.0.0; list openbeos); Fri, 25 Jul 2003 17:21:49 -0500 (EST)\r\nD\ elivered-To: openbeos@xxxxxxxxxxxxx\r\nReceived: from smtp4.hy.skanova.net (sm\ tp4.hy.skanova.net [195.67.199.133])\r\n\tby turing.freelists.org (Avenir Tech\ nologies Mail Multiplex) with ESMTP id 5DBB0395117\r\n\tfor <openbeos@freelist\ s.org>; Fri, 25 Jul 2003 17:21:48 -0500 (EST)\r\nReceived: from mail1.telia.co\ [...] pperThread, or by the Pulse() hook. \r\n\r\n> btw, good job.\r\n\r\nThanks! \ \r\n\r\nIt's hard getting it all right. There are probably more bugs/flaws in \ \r\nthere,\r\nbut this is a community project, so that takes some weight off m\ y \r\nshoulders. Now I just want to clean it up and get it into cvs.\r\n\r\n/J\ onas Sundstr\366m. www.kirilla.com\r\n\r\n\r\n } { Create Thing PosixEquivalentThing=Attribute Path=in/[openbeos] ZipOMatic beta 1 20030725181552 Jonas Sundstrom/BEOS:TYPE PrimitiveType=MIMS PosixSize=13 Data=text/x-email\000 } { Create Thing PosixEquivalentThing=Attribute Path=in/[openbeos] ZipOMatic beta 1 20030725181552 Jonas Sundstrom/MAIL:rati\ o_spam PrimitiveType=FLOT PosixSize=4 Data=\0\0\0\000 } { Create Thing PosixEquivalentThing=Attribute Path=in/[openbeos] ZipOMatic beta 1 20030725181552 Jonas Sundstrom/MAIL:subj\ ect PrimitiveType=CSTR PosixSize=32 Data=[openbeos] Re: ZipOMatic beta 1\000 } [...]