filesystem
Reads and writes local files through the File System Access API's open/save pickers.
Import: @rtorcato/browser-common/filesystem
๐ MDN: File System Access API
The File System Access API is Chromium-only and pickFiles/saveFile must
be called from a user gesture (e.g. a click handler) โ both throw a
File System Access API not available error where unsupported, so guard
with isFileSystemApiAvailable() first.
Browser supportโ
| API | Chrome | Edge | Firefox | Safari | iOS Safari | Baseline |
|---|---|---|---|---|---|---|
Window.showOpenFilePicker | โ 86+ | โ 86+ | โ | โ | โ | Limited |
Window.showSaveFilePicker | โ 86+ | โ 86+ | โ | โ | โ | Limited |
โ
supported ยท โ partial ยท โ not supported ยท [n] see note. Generated from MDN browser-compat-data and web-features. caniuse: Window.showOpenFilePicker ยท Window.showSaveFilePicker
Exampleโ
import {
isFileSystemApiAvailable,
pickFiles,
saveFile,
writeTextToFile,
} from '@rtorcato/browser-common/filesystem'
if (isFileSystemApiAvailable()) {
const files = await pickFiles({ multiple: true })
const stream = await saveFile({ suggestedName: 'notes.txt' })
await writeTextToFile(stream, 'hello')
}
Exportsโ
isFileSystemApiAvailable()โ feature checkpickFiles(options?)โ prompts the user to select files, returnsFile[]saveFile(options?)โ prompts the user to save a file, returns a writable file streamreadFileAsText(file)โ reads aFileas textreadFileAsArrayBuffer(file)โ reads aFileas anArrayBufferwriteTextToFile(stream, text)โ writes text to a writable stream and closes itwriteDataToFile(stream, data)โ writes aBlob/ArrayBufferto a writable stream and closes it
See the API reference for full signatures.