Back to Content

FileSystemDirectoryHandle: resolve() method

files/en-us/web/api/filesystemdirectoryhandle/resolve/index.md

latest1.8 KB
Original Source

{{securecontext_header}}{{APIRef("File System API")}}{{AvailableInWorkers}}

The resolve() method of the {{domxref("FileSystemDirectoryHandle")}} interface returns an {{jsxref('Array')}} of directory names from the parent handle to the specified child entry, with the name of the child entry as the last array item.

Syntax

js-nolint
resolve(possibleDescendant)

Parameters

  • possibleDescendant
    • : The {{domxref('FileSystemHandle')}} from which to return the relative path.

Return value

A {{jsxref('Promise')}} which resolves with an {{jsxref('Array')}} of strings, or null if possibleDescendant is not a descendant of this {{domxref('FileSystemDirectoryHandle')}}.

Exceptions

No exceptions are thrown.

Examples

The following asynchronous function uses resolve() to find the path to a chosen file, relative to a specified directory handle.

js
async function returnPathDirectories(directoryHandle) {
  // Get a file handle by showing a file picker:
  const [handle] = await self.showOpenFilePicker();
  if (!handle) {
    // User cancelled, or otherwise failed to open a file.
    return;
  }

  // Check if handle exists inside our directory handle
  const relativePaths = await directoryHandle.resolve(handle);

  if (relativePaths === null) {
    // Not inside directory handle
  } else {
    // relativePath is an array of names, giving the relative path
    for (const name of relativePaths) {
      // log each entry
      console.log(name);
    }
  }
}

Specifications

{{Specifications}}

Browser compatibility

{{Compat}}

See also