Loading source
Pulling the file list, source metadata, and syntax-aware rendering for this listing.
Source from repo
Apply VueUse composables in Vue 3/Nuxt projects to replace custom implementations with battle-tested utilities.
Files
Skill
Size
Entrypoint
Format
Open file
Syntax-highlighted preview of this file as included in the skill package.
references/useFileSystemAccess.md
1---2category: Browser3---45# useFileSystemAccess67Create and read and write local files with [FileSystemAccessAPI](https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API)89## Usage1011```ts12import { useFileSystemAccess } from '@vueuse/core'1314const {15isSupported,16data,17file,18fileName,19fileMIME,20fileSize,21fileLastModified,22create,23open,24save,25saveAs,26updateData27} = useFileSystemAccess()28```2930## Type Declarations3132```ts33/**34* window.showOpenFilePicker parameters35* @see https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker#parameters36*/37export interface FileSystemAccessShowOpenFileOptions {38multiple?: boolean39types?: Array<{40description?: string41accept: Record<string, string[]>42}>43excludeAcceptAllOption?: boolean44}45/**46* window.showSaveFilePicker parameters47* @see https://developer.mozilla.org/en-US/docs/Web/API/window/showSaveFilePicker#parameters48*/49export interface FileSystemAccessShowSaveFileOptions {50suggestedName?: string51types?: Array<{52description?: string53accept: Record<string, string[]>54}>55excludeAcceptAllOption?: boolean56}57/**58* FileHandle59* @see https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileHandle60*/61export interface FileSystemFileHandle {62getFile: () => Promise<File>63createWritable: () => FileSystemWritableFileStream64}65/**66* @see https://developer.mozilla.org/en-US/docs/Web/API/FileSystemWritableFileStream67*/68interface FileSystemWritableFileStream extends WritableStream {69/**70* @see https://developer.mozilla.org/en-US/docs/Web/API/FileSystemWritableFileStream/write71*/72write: FileSystemWritableFileStreamWrite73/**74* @see https://developer.mozilla.org/en-US/docs/Web/API/FileSystemWritableFileStream/seek75*/76seek: (position: number) => Promise<void>77/**78* @see https://developer.mozilla.org/en-US/docs/Web/API/FileSystemWritableFileStream/truncate79*/80truncate: (size: number) => Promise<void>81}82/**83* FileStream.write84* @see https://developer.mozilla.org/en-US/docs/Web/API/FileSystemWritableFileStream/write85*/86interface FileSystemWritableFileStreamWrite {87(data: string | BufferSource | Blob): Promise<void>88(options: {89type: "write"90position: number91data: string | BufferSource | Blob92}): Promise<void>93(options: { type: "seek"; position: number }): Promise<void>94(options: { type: "truncate"; size: number }): Promise<void>95}96/**97* FileStream.write98* @see https://developer.mozilla.org/en-US/docs/Web/API/FileSystemWritableFileStream/write99*/100export type FileSystemAccessWindow = Window & {101showSaveFilePicker: (102options: FileSystemAccessShowSaveFileOptions,103) => Promise<FileSystemFileHandle>104showOpenFilePicker: (105options: FileSystemAccessShowOpenFileOptions,106) => Promise<FileSystemFileHandle[]>107}108export type UseFileSystemAccessCommonOptions = Pick<109FileSystemAccessShowOpenFileOptions,110"types" | "excludeAcceptAllOption"111>112export type UseFileSystemAccessShowSaveFileOptions = Pick<113FileSystemAccessShowSaveFileOptions,114"suggestedName"115>116export type UseFileSystemAccessOptions = ConfigurableWindow &117UseFileSystemAccessCommonOptions & {118/**119* file data type120*/121dataType?: MaybeRefOrGetter<"Text" | "ArrayBuffer" | "Blob">122}123/**124* Create and read and write local files.125* @see https://vueuse.org/useFileSystemAccess126*/127export declare function useFileSystemAccess(): UseFileSystemAccessReturn<128string | ArrayBuffer | Blob129>130export declare function useFileSystemAccess(131options: UseFileSystemAccessOptions & {132dataType: "Text"133},134): UseFileSystemAccessReturn<string>135export declare function useFileSystemAccess(136options: UseFileSystemAccessOptions & {137dataType: "ArrayBuffer"138},139): UseFileSystemAccessReturn<ArrayBuffer>140export declare function useFileSystemAccess(141options: UseFileSystemAccessOptions & {142dataType: "Blob"143},144): UseFileSystemAccessReturn<Blob>145export declare function useFileSystemAccess(146options: UseFileSystemAccessOptions,147): UseFileSystemAccessReturn<string | ArrayBuffer | Blob>148export interface UseFileSystemAccessReturn<T = string> extends Supportable {149data: ShallowRef<T | undefined>150file: ShallowRef<File | undefined>151fileName: ComputedRef<string>152fileMIME: ComputedRef<string>153fileSize: ComputedRef<number>154fileLastModified: ComputedRef<number>155open: (_options?: UseFileSystemAccessCommonOptions) => Awaitable<void>156create: (_options?: UseFileSystemAccessShowSaveFileOptions) => Awaitable<void>157save: (_options?: UseFileSystemAccessShowSaveFileOptions) => Awaitable<void>158saveAs: (_options?: UseFileSystemAccessShowSaveFileOptions) => Awaitable<void>159updateData: () => Awaitable<void>160}161```162