Skip to content

useFileSystemAccess

Category
Export Size
683 B
Last Changed
6 months ago

Create and read and write local files with FileSystemAccessAPI

Demo

DataType
isSupported: true
fileName: ''
fileMIME: ''
fileSize: 0
fileLastModified: 0

Usage

ts
import { 
useFileSystemAccess
} from '@vueuse/core'
const {
isSupported
,
data
,
file
,
fileName
,
fileMIME
,
fileSize
,
fileLastModified
,
create
,
open
,
save
,
saveAs
,
updateData
} =
useFileSystemAccess
()

Type Declarations

Show Type Declarations
ts
/**
 * window.showOpenFilePicker parameters
 * @see https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker#parameters
 */
export interface FileSystemAccessShowOpenFileOptions {
  
multiple
?: boolean
types
?:
Array
<{
description
?: string
accept
:
Record
<string, string[]>
}>
excludeAcceptAllOption
?: boolean
} /** * window.showSaveFilePicker parameters * @see https://developer.mozilla.org/en-US/docs/Web/API/window/showSaveFilePicker#parameters */ export interface FileSystemAccessShowSaveFileOptions {
suggestedName
?: string
types
?:
Array
<{
description
?: string
accept
:
Record
<string, string[]>
}>
excludeAcceptAllOption
?: boolean
} /** * FileHandle * @see https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileHandle */ export interface FileSystemFileHandle {
getFile
: () =>
Promise
<File>
createWritable
: () => FileSystemWritableFileStream
} /** * @see https://developer.mozilla.org/en-US/docs/Web/API/FileSystemWritableFileStream */ interface FileSystemWritableFileStream extends
WritableStream
{
/** * @see https://developer.mozilla.org/en-US/docs/Web/API/FileSystemWritableFileStream/write */
write
: FileSystemWritableFileStreamWrite
/** * @see https://developer.mozilla.org/en-US/docs/Web/API/FileSystemWritableFileStream/seek */
seek
: (
position
: number) =>
Promise
<void>
/** * @see https://developer.mozilla.org/en-US/docs/Web/API/FileSystemWritableFileStream/truncate */
truncate
: (
size
: number) =>
Promise
<void>
} /** * FileStream.write * @see https://developer.mozilla.org/en-US/docs/Web/API/FileSystemWritableFileStream/write */ interface FileSystemWritableFileStreamWrite { (
data
: string |
BufferSource
| Blob):
Promise
<void>
(
options
: {
type
: "write"
position
: number
data
: string |
BufferSource
| Blob
}):
Promise
<void>
(
options
: {
type
: "seek";
position
: number }):
Promise
<void>
(
options
: {
type
: "truncate";
size
: number }):
Promise
<void>
} /** * FileStream.write * @see https://developer.mozilla.org/en-US/docs/Web/API/FileSystemWritableFileStream/write */ export type
FileSystemAccessWindow
= Window & {
showSaveFilePicker
: (
options
: FileSystemAccessShowSaveFileOptions,
) =>
Promise
<FileSystemFileHandle>
showOpenFilePicker
: (
options
: FileSystemAccessShowOpenFileOptions,
) =>
Promise
<FileSystemFileHandle[]>
} export type
UseFileSystemAccessCommonOptions
=
Pick
<
FileSystemAccessShowOpenFileOptions, "types" | "excludeAcceptAllOption" > export type
UseFileSystemAccessShowSaveFileOptions
=
Pick
<
FileSystemAccessShowSaveFileOptions, "suggestedName" > export type
UseFileSystemAccessOptions
=
ConfigurableWindow
&
UseFileSystemAccessCommonOptions
& {
/** * file data type */
dataType
?:
MaybeRefOrGetter
<"Text" | "ArrayBuffer" | "Blob">
} /** * Create and read and write local files. * @see https://vueuse.org/useFileSystemAccess */ export declare function
useFileSystemAccess
():
UseFileSystemAccessReturn
<
string | ArrayBuffer | Blob > export declare function
useFileSystemAccess
(
options
:
UseFileSystemAccessOptions
& {
dataType
: "Text"
}, ):
UseFileSystemAccessReturn
<string>
export declare function
useFileSystemAccess
(
options
:
UseFileSystemAccessOptions
& {
dataType
: "ArrayBuffer"
}, ):
UseFileSystemAccessReturn
<ArrayBuffer>
export declare function
useFileSystemAccess
(
options
:
UseFileSystemAccessOptions
& {
dataType
: "Blob"
}, ):
UseFileSystemAccessReturn
<Blob>
export declare function
useFileSystemAccess
(
options
:
UseFileSystemAccessOptions
,
):
UseFileSystemAccessReturn
<string | ArrayBuffer | Blob>
export interface
UseFileSystemAccessReturn
<
T
= string> {
isSupported
:
ComputedRef
<boolean>
data
:
ShallowRef
<
T
| undefined>
file
:
ShallowRef
<File | undefined>
fileName
:
ComputedRef
<string>
fileMIME
:
ComputedRef
<string>
fileSize
:
ComputedRef
<number>
fileLastModified
:
ComputedRef
<number>
open
: (
_options
?:
UseFileSystemAccessCommonOptions
) =>
Awaitable
<void>
create
: (
_options
?:
UseFileSystemAccessShowSaveFileOptions
) =>
Awaitable
<void>
save
: (
_options
?:
UseFileSystemAccessShowSaveFileOptions
) =>
Awaitable
<void>
saveAs
: (
_options
?:
UseFileSystemAccessShowSaveFileOptions
) =>
Awaitable
<void>
updateData
: () =>
Awaitable
<void>
}

Source

SourceDemoDocs

Contributors

Anthony Fu
IlyaL
Anthony Fu
Jelf
SerKo
Robin
Alex Liu
Philippe Entzmann
171H
Carlos Gamez
wheat

Changelog

v12.8.0 on
7432f - feat(types): deprecate MaybeRef and MaybeRefOrGetter in favor of Vue's native (#4636)
v12.3.0 on
59f75 - feat(toValue): deprecate toValue from @vueuse/shared in favor of Vue's native
v12.0.0-beta.1 on
0a9ed - feat!: drop Vue 2 support, optimize bundles and clean up (#4349)
v10.8.0 on
668ca - fix: updateData on modified file (#3780)
v10.7.0 on
fccf2 - feat: upgrade deps (#3614)
v10.4.0 on
a9c8b - fix: make options to be optional (#3320)
v10.0.0-beta.4 on
4d757 - feat(types)!: rename MaybeComputedRef to MaybeRefOrGetter

Released under the MIT License.

LIMITED OFFER
50% OFF Official Developer Vue.js Certification
Get Certified
37
hours
:
27
minutes
:
25
seconds
: