The Path Is Not the File

A file path looks like an identity.

/projects/foo/render/final.exr

It is unique enough to use as a dictionary key. It is easy to put in a database. It is what users see. Most APIs hand it to you directly.

But a path answers only one question:

Where is this file right now?

It does not necessarily answer:

What file is this?

That distinction seems academic until you build anything that has to reason about files over time.

Consider three ordinary operations:

Operation Path changes? Contents change?

Rename a file yes no

Copy a file yes no

Edit a file in place no yes