I always assumed you could work around this by pre-allocating a large enough header space to hold a reasonable sized directory tree. You could even then append a supplementary directory if you run out of space and just stick a pointer in the first one. I'm pretty sure that's just reinventing an actual filesystem, but if it works...
> ... pre-allocating a large enough header space to hold ...
Isn't the point of compression is to eliminate such wastes of space?
It's a trade between size and speed. If you want fast lookup, it's not a waste.
Sure, this would also work. But it seems more complicated -- what would be the benefit?
Losing the back half of the achieve doesn't lose your directory list. (Truth be told, I prefer the approach of sticking a copy on the front and back for redundancy, but I appreciate that that's a very specific tradeoff)
Isn't this basically FAT without the actual allocation table?