IPFS Desktop uses "ipfs files write" or "ipfs add"?

So I see that adding a file with IPFS Desktop puts it in the MFS, but I found out today that
cat test.mp4 | ipfs files write --create /test/test.mp4
ipfs files cp /ipfs/$(ipfs add -Q test.mp4) /test/test.mp4
can yield different hashes (according to Issue: "ipfs add" and "ipfs files write" the difference between the two? - #3 by VKingi).

I was wondering what IPFS Desktop does, so that I can make my command line adds and my Desktop adds consistent and properly de-duplicated?

Thanks for any help!

IPFS Desktop does ipfs add + ipfs files cp because of reasons described in: Upload via WebUI (ipfs.files.write --create) produces different hash than CLI (ipfs.add) · Issue #676 · ipfs/ipfs-webui · GitHub This is a UX decision made solely to produce the same CID as command line ipfs add. If you want the same CID in both places, use ipfs add + ipfs files cp.


I think that you might be able to import entire directories with CAR files but I’m not sure about that.

Sure, but it still requires ipfs files cp step to create a reference in MFS after the CID is imported to the local datastore:

$ ipfs dag import dir.car

$ ipfs files cp /ipfs/QmFoo /something_in_mfs