coderef

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: 155
Edge
12–107Not supported
108+Supportedsince Dec 5, 2022
Current: 154
Firefox
1–110Not supported
111+Supportedsince Mar 14, 2023
Current: 157
Safari
1–16.3Not supported
16.4+Supportedsince Mar 27, 2023
Current: 27
MobileChrome Android
18–108Not supported
109+Supportedsince Jan 10, 2023
Current: 155
Firefox Android
4–110Not supported
111+Supportedsince Mar 14, 2023
Current: 157
Safari iOS
1–16.3Not supported
16.4+Supportedsince Mar 27, 2023
Current: 27

How 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-featureChromeEdgeFirefoxSafariChrome AndroidFirefox AndroidSafari iOS
FileSystemDirectoryHandle868611115.210911115.2
FileSystemDirectoryHandle.entries868611115.210911115.2
FileSystemDirectoryHandle.getDirectoryHandle868611115.210911115.2
FileSystemDirectoryHandle.getFileHandle868611115.210911115.2
FileSystemDirectoryHandle.keys868611115.210911115.2
FileSystemDirectoryHandle.removeEntry868611115.210911115.2
FileSystemDirectoryHandle.resolve868611115.210911115.2
FileSystemDirectoryHandle.values868611115.210911115.2
FileSystemFileHandle868611115.210911115.2
FileSystemFileHandle.createSyncAccessHandle10210211115.210911115.2
FileSystemFileHandle.getFile868611115.210911115.2
FileSystemHandle868611115.210911115.2
FileSystemHandle.isSameEntry868611115.210911115.2
FileSystemHandle.kind868611115.210911115.2
FileSystemHandle.name868611115.210911115.2
FileSystemSyncAccessHandle10210211115.210911115.2
FileSystemSyncAccessHandle.close10210211115.210911115.2
FileSystemSyncAccessHandle.close.sync_version10810811116.410911116.4
FileSystemSyncAccessHandle.flush10210211115.210911115.2
FileSystemSyncAccessHandle.flush.sync_version10810811116.410911116.4
Show 7 more
Sub-featureChromeEdgeFirefoxSafariChrome AndroidFirefox AndroidSafari iOS
FileSystemSyncAccessHandle.getSize10210211115.210911115.2
FileSystemSyncAccessHandle.getSize.sync_version10810811116.410911116.4
FileSystemSyncAccessHandle.read10210211115.210911115.2
FileSystemSyncAccessHandle.truncate10210211115.210911115.2
FileSystemSyncAccessHandle.truncate.sync_version10810811116.410911116.4
FileSystemSyncAccessHandle.write10210211115.210911115.2
StorageManager.getDirectory868611115.210911115.2