cocoacompressionhfs+hfs

How to compress file on HFS programmatically?


macOS HFS+ supports transparent filesystem-level compression. How can I enable this compression for certain files via a programmatic API? (e.g. Cocoa or C interface)

I'd like to achieve effect of ditto --hfsCompression src dst, but without shelling out.

To clarify: I'm asking how to make uncompressed file compressed. I'm not interested in reading or preserving existing HFS compression state.


Solution

  • There's afsctool which is an open source implementation of HFS+ compression. It was originally by hacker brkirch (macrumors forum link, as he still visits there) but has since been expanded and improved a great deal by @rjvb who is doing amazing things with it.