files/en-us/web/api/filesystemdirectoryhandle/resolve/index.md
{{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.
resolve(possibleDescendant)
possibleDescendant
A {{jsxref('Promise')}} which resolves with an {{jsxref('Array')}} of
strings, or null if possibleDescendant is not a descendant of this {{domxref('FileSystemDirectoryHandle')}}.
No exceptions are thrown.
The following asynchronous function uses resolve() to find the path to a
chosen file, relative to a specified directory handle.
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}}
{{Compat}}