HTTP/2 301
server: nginx
date: Wed, 23 Jul 2025 15:10:32 GMT
content-type: text/html
content-length: 162
location: https://developer.mozilla.org/en-US/docs/Web/API/Window/showDirectoryPicker
strict-transport-security: max-age=60; includeSubDomains
via: 1.1 google
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
HTTP/2 200
x-guploader-uploadid: ABgVH88Dxz5bA04KImr4wVNDNJuH34gaEJApf8gQjPh9EKMGZkVsUcauBYDpqGBb006dfVxV0CV__L0
x-goog-generation: 1753231603716073
x-goog-metageneration: 1
x-goog-stored-content-encoding: identity
x-goog-stored-content-length: 106866
x-goog-meta-goog-reserved-file-mtime: 1753230360
x-goog-hash: crc32c=AingvQ==, md5=zPspwi4BoddJ7jG9Uz1PYQ==
x-goog-storage-class: STANDARD
accept-ranges: none
expires: Wed, 23 Jul 2025 16:10:33 GMT
cache-control: public, max-age=3600
last-modified: Wed, 23 Jul 2025 00:46:43 GMT
etag: W/"ccfb29c22e01a1d749ee31bd533d4f61"
content-type: text/html
age: 0
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
alt-svc: clear
x-content-type-options: nosniff
strict-transport-security: max-age=63072000
content-security-policy: default-src 'self'; script-src 'report-sample' 'self' 'wasm-unsafe-eval' https://www.google-analytics.com/analytics.js https://www.googletagmanager.com/gtag/js assets.codepen.io production-assets.codepen.io https://js.stripe.com 'sha256-EehWlTYp7Bqy57gDeQttaWKp0ukTTEUKGP44h8GVeik=' 'sha256-XNBp89FG76amD8BqrJzyflxOF9PaWPqPqvJfKZPCv7M='; script-src-elem 'report-sample' 'self' 'wasm-unsafe-eval' https://www.google-analytics.com/analytics.js https://www.googletagmanager.com/gtag/js assets.codepen.io production-assets.codepen.io https://js.stripe.com 'sha256-EehWlTYp7Bqy57gDeQttaWKp0ukTTEUKGP44h8GVeik=' 'sha256-XNBp89FG76amD8BqrJzyflxOF9PaWPqPqvJfKZPCv7M='; style-src 'report-sample' 'self' 'unsafe-inline'; object-src 'none'; base-uri 'self'; connect-src 'self' developer.allizom.org bcd.developer.allizom.org bcd.developer.mozilla.org updates.developer.allizom.org updates.developer.mozilla.org https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com https://incoming.telemetry.mozilla.org https://observatory-api.mdn.allizom.net https://observatory-api.mdn.mozilla.net https://api.github.com/search/issues stats.g.doubleclick.net https://api.stripe.com; font-src 'self'; frame-src 'self' interactive-examples.mdn.mozilla.net interactive-examples.mdn.allizom.net mdn.github.io live-samples.mdn.mozilla.net live-samples.mdn.allizom.net *.mdnplay.dev *.mdnyalp.dev *.play.test.mdn.allizom.net https://v2.scrimba.com https://scrimba.com jsfiddle.net www.youtube-nocookie.com codepen.io survey.alchemer.com https://js.stripe.com; img-src 'self' data: *.githubusercontent.com *.googleusercontent.com *.gravatar.com mozillausercontent.com firefoxusercontent.com profile.stage.mozaws.net profile.accounts.firefox.com developer.mozilla.org mdn.dev interactive-examples.mdn.mozilla.net interactive-examples.mdn.allizom.net wikipedia.org upload.wikimedia.org https://mdn.github.io/shared-assets/ https://mdn.dev/ https://*.google-analytics.com https://*.googletagmanager.com www.gstatic.com; manifest-src 'self'; media-src 'self' archive.org videos.cdn.mozilla.net https://mdn.github.io/shared-assets/; child-src 'self'; worker-src 'self';
x-frame-options: DENY
origin-trial: AxVILwizhbMjxFeHOn1P3R8niO1RJY/smaK4B4d1rLzc1gTaxtXMSaTi+FoigYgCw40uFRDwFcEAeqDR+vVLOW4AAABfeyJvcmlnaW4iOiJodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZyIsImZlYXR1cmUiOiJQcml2YXRlQXR0cmlidXRpb25WMiIsImV4cGlyeSI6MTc0MjA3OTYwMH0=
x-cloud-trace-context: 5192a834783fa127d916d81c5ad297ae
date: Wed, 23 Jul 2025 15:10:33 GMT
server: Google Frontend
via: 1.1 google
vary: Accept-Encoding
content-encoding: gzip
x-cache: miss
Window: showDirectoryPicker() method - Web APIs | MDN
Window: showDirectoryPicker() method Limited availability
The showDirectoryPicker()
method of the
Window
interface displays a directory picker which allows the user to
select a directory.
showDirectoryPicker()
showDirectoryPicker(options)
options
Optional
An object containing options, which are as follows:
id
Optional
By specifying an ID, the browser can remember different directories for different
IDs. If the same ID is used for another picker, the picker opens in the same
directory.
mode
Optional
A string that defaults to "read"
for read-only access or "readwrite"
for read
and write access to the directory.
startIn
Optional
A FileSystemHandle
or a well known directory ("desktop"
, "documents"
,
"downloads"
, "music"
, "pictures"
, or "videos"
) to open the dialog in.
AbortError
DOMException
Thrown if the user dismisses the prompt without making a selection,
or if the user agent deems the selected directory to be too sensitive or dangerous,
or if the PermissionStatus.state
for the selected directory is not "granted"
in the specified mode
.
SecurityError
DOMException
Thrown if the call was blocked by the same-origin policy or it was not called via a user interaction such as a button press.
Transient user activation is required. The user has to interact with the page or a UI element in order for this feature to work.
This asynchronous function shows a directory picker and returns a
FileSystemDirectoryHandle
once selected.
async function getDir() {
const dirHandle = await window.showDirectoryPicker();
// run code for dirHandle
}