In general, how do I know if my project needs a file system?
Operating Systems abstract things so different applications on the same machine do not need to care about each other.

File systems follow the same logic. If you need storage for multiple independent components that should not need to coordinate resource usage between each other, you need a mediating component, which would be a file system.

This can be a generic mapping from a (possibly hierarchical) primary key to a single data blob of arbitrary length, as most file systems, or it can contain additional features like secondary streams, indexes (e.g. artist search in MP3 folders), a record format like in Palm OS, ...