Origin private file systemBaseline · Widely available
The navigator.storage.getDirectory() method returns a FileSystemDirectoryHandle that is restricted to a specific origin and invisible to the user's actual file system for faster file-based applications, such as SQLite databases.
Supported in all major browsers for at least 30 months — safe to use without fallbacks. Baseline since Mar 27, 2023. Widely available since Sep 27, 2025.
Browser support
DesktopChrome
1–107Not supported
108+Supportedsince Nov 29, 2022
Current: 155Edge
12–107Not supported
108+Supportedsince Dec 5, 2022
Current: 154Firefox
1–110Not supported
111+Supportedsince Mar 14, 2023
Current: 157Safari
1–16.3Not supported
16.4+Supportedsince Mar 27, 2023
Current: 27MobileChrome Android
18–108Not supported
109+Supportedsince Jan 10, 2023
Current: 155Firefox Android
4–110Not supported
111+Supportedsince Mar 14, 2023
Current: 157Safari iOS
1–16.3Not supported
16.4+Supportedsince Mar 27, 2023
Current: 27How to use
This feature is Baseline widely available — use it freely, no fallback needed.
Example
Full syntax and examples are on MDN: FileSystemDirectoryHandle.
Feature detection
JS · check before using
if ("FileSystemDirectoryHandle" in globalThis) {
// FileSystemDirectoryHandle is available
} else {
// load a polyfill or use a fallback
}Sub-features
Support for each part of the feature (27). The overall table above shows when the whole feature works.
| Sub-feature | Chrome | Edge | Firefox | Safari | Chrome Android | Firefox Android | Safari iOS |
|---|---|---|---|---|---|---|---|
| FileSystemDirectoryHandle | 86 | 86 | 111 | 15.2 | 109 | 111 | 15.2 |
| FileSystemDirectoryHandle.entries | 86 | 86 | 111 | 15.2 | 109 | 111 | 15.2 |
| FileSystemDirectoryHandle.getDirectoryHandle | 86 | 86 | 111 | 15.2 | 109 | 111 | 15.2 |
| FileSystemDirectoryHandle.getFileHandle | 86 | 86 | 111 | 15.2 | 109 | 111 | 15.2 |
| FileSystemDirectoryHandle.keys | 86 | 86 | 111 | 15.2 | 109 | 111 | 15.2 |
| FileSystemDirectoryHandle.removeEntry | 86 | 86 | 111 | 15.2 | 109 | 111 | 15.2 |
| FileSystemDirectoryHandle.resolve | 86 | 86 | 111 | 15.2 | 109 | 111 | 15.2 |
| FileSystemDirectoryHandle.values | 86 | 86 | 111 | 15.2 | 109 | 111 | 15.2 |
| FileSystemFileHandle | 86 | 86 | 111 | 15.2 | 109 | 111 | 15.2 |
| FileSystemFileHandle.createSyncAccessHandle | 102 | 102 | 111 | 15.2 | 109 | 111 | 15.2 |
| FileSystemFileHandle.getFile | 86 | 86 | 111 | 15.2 | 109 | 111 | 15.2 |
| FileSystemHandle | 86 | 86 | 111 | 15.2 | 109 | 111 | 15.2 |
| FileSystemHandle.isSameEntry | 86 | 86 | 111 | 15.2 | 109 | 111 | 15.2 |
| FileSystemHandle.kind | 86 | 86 | 111 | 15.2 | 109 | 111 | 15.2 |
| FileSystemHandle.name | 86 | 86 | 111 | 15.2 | 109 | 111 | 15.2 |
| FileSystemSyncAccessHandle | 102 | 102 | 111 | 15.2 | 109 | 111 | 15.2 |
| FileSystemSyncAccessHandle.close | 102 | 102 | 111 | 15.2 | 109 | 111 | 15.2 |
| FileSystemSyncAccessHandle.close.sync_version | 108 | 108 | 111 | 16.4 | 109 | 111 | 16.4 |
| FileSystemSyncAccessHandle.flush | 102 | 102 | 111 | 15.2 | 109 | 111 | 15.2 |
| FileSystemSyncAccessHandle.flush.sync_version | 108 | 108 | 111 | 16.4 | 109 | 111 | 16.4 |
Show 7 more
| Sub-feature | Chrome | Edge | Firefox | Safari | Chrome Android | Firefox Android | Safari iOS |
|---|---|---|---|---|---|---|---|
| FileSystemSyncAccessHandle.getSize | 102 | 102 | 111 | 15.2 | 109 | 111 | 15.2 |
| FileSystemSyncAccessHandle.getSize.sync_version | 108 | 108 | 111 | 16.4 | 109 | 111 | 16.4 |
| FileSystemSyncAccessHandle.read | 102 | 102 | 111 | 15.2 | 109 | 111 | 15.2 |
| FileSystemSyncAccessHandle.truncate | 102 | 102 | 111 | 15.2 | 109 | 111 | 15.2 |
| FileSystemSyncAccessHandle.truncate.sync_version | 108 | 108 | 111 | 16.4 | 109 | 111 | 16.4 |
| FileSystemSyncAccessHandle.write | 102 | 102 | 111 | 15.2 | 109 | 111 | 15.2 |
| StorageManager.getDirectory | 86 | 86 | 111 | 15.2 | 109 | 111 | 15.2 |