W3cubDocs

/Web APIs

FileSystemHandle: requestPermission() method

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

The requestPermission() method of the FileSystemHandle interface requests read or readwrite permissions for the file handle.

Syntax

js

requestPermission(fileSystemHandlePermissionDescriptor)

Parameters

FileSystemHandlePermissionDescriptor Optional

An object which specifies the permission mode to query for. Options are as follows:

  • 'mode': Can be either 'read' or 'readwrite'.

Return value

PermissionStatus.state which is one of 'granted', 'denied' or 'prompt'.

Exceptions

TypeError

Thrown if no parameter is specified or the mode is not that of 'read' or 'readwrite'

Examples

The following asynchronous function requests permissions if they have not been granted.

js

// fileHandle is a FileSystemFileHandle
// withWrite is a boolean set to true if write

async function verifyPermission(fileHandle, withWrite) {
  const opts = {};
  if (withWrite) {
    opts.mode = "readwrite";
  }

  // Check if we already have permission, if so, return true.
  if ((await fileHandle.queryPermission(opts)) === "granted") {
    return true;
  }

  // Request permission to the file, if the user grants permission, return true.
  if ((await fileHandle.requestPermission(opts)) === "granted") {
    return true;
  }

  // The user did not grant permission, return false.
  return false;
}

Specifications

Browser compatibility

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on IOS Samsung Internet
requestPermission 86 86 No No 72 No No 86 No 61 No 14.0

See also

© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/FileSystemHandle/requestPermission