Draft Spec: https://wicg.github.io/native-file-system/
Example app implementing the API: https://excalidraw.com/
The API has been renamed to “File System Access API”.
I'd like to add my support for this based on the demand for it from users of our browser-based game editor Construct 3 (www.construct.net).
We provide a few save options, including cloud save to Google Drive, OneDrive and Dropbox, saving to browser storage, downloading a copy, and where supported, saving to local files and folders with the File System Access API.
Our data shows the file system save options are the most popular of all these options. I believe this demonstrates that it's actually what users want and is their preferred way of saving work from the web. (This probably also makes it an incentive for people to choose a browser that does support it.)
Especially with the advent of Progressive Web Apps, FileSystem API seems like a necessary feature that'd help make PWAs completely offline. I tried FileSystem API with my client's E-Learning platform and it works smooth. I just wish that other browsers (Firefox and Safari) would implement it.
I have documented two use cases for the showOpenFilePicker() and the showSaveFilePicker() methods of this API (and one could easily extend these apps to support showDirectoryPicker() as well:
https://web.dev/excalidraw-and-fugu/#working-with-files for https://excalidraw.com/ and https://web.dev/svgcode/#file-system-access-api for https://svgco.de/.
For https://basketball-gm.com/ (video game with tens of thousands of active users) I store a ton of data in IndexedDB. If users want to export it, the File System Access API and showSaveFilePicker is the only good way to stream client side data to a file. Otherwise, I need to either read it all into memory first (not feasible for large data) or use a complicated workaround like https://github.com/jimmywarting/StreamSaver.js
So currently it is possible to create files client side, if you read the data into memory first. And it is possible to create arbitrarily large files from streaming data, as long as you use a complicated workaround. showSaveFilePicker lets you accomplish the same thing with no complicated workaround.
I understand showSaveFilePicker enables more functionality than just streaming data to a new file... but I am not aware of any alternative proposal that would allow easily streaming data to a new file. So I hope browsers besides Chrome can either support showSaveFilePicker or come up with some feasible alternative.
*** This bug has been marked as a duplicate of bug 231706 ***
Thanks for your comments, everyone. I'm marking this a duplicate of the ticket that's tracking this work as it's happening.
This article we published this week will be of interest to you: https://webkit.org/blog/12257/the-file-system-access-api-with-origin-private-file-system/