Saltar al contenido

@tauri-apps/plugin-fs

Accede al sistema de archivos.

Recursos con alcance de seguridad de iOS

Sección titulada “iOS security-scoped resources”

En iOS, el plugin fs gestiona automáticamente el acceso a los recursos con alcance de seguridad cuando se accede a una URL de archivo. Esto es necesario para archivos fuera del sandbox de la aplicación (por ejemplo, desde el selector de archivos).

import { open } from '@tauri-apps/plugin-fs';
const file = await open('file:///path/to/file.txt');
await file.close();

Este módulo evita el recorrido de rutas (path traversal), no permitiendo que se usen accesores de directorio primario (es decir, no se permiten rutas como “/usr/path/to/../file” o “../path/to/file”). Las rutas accedidas con esta API deben ser relativas a uno de los directorios base o crearse con la API path.

La API tiene una configuración de alcance (scope) que te obliga a restringir las rutas a las que se puede acceder utilizando patrones glob.

La configuración de alcance (scope) es un array de patrones glob que describen las rutas de archivos/directorios permitidas. Por ejemplo, esta configuración de alcance permite que todas las API fs habilitadas accedan (únicamente) a archivos en el directorio databases del directorio $APPDATA:

{
"permissions": [
{
"identifier": "fs:scope",
"allow": [{ "path": "$APPDATA/databases/*" }]
}
]
}

Los alcances (scopes) también se pueden aplicar a API específicas de fs utilizando el identificador de la API en lugar de fs:scope:

{
"permissions": [
{
"identifier": "fs:allow-exists",
"allow": [{ "path": "$APPDATA/databases/*" }]
}
]
}

Nota el uso de la variable $APPDATA. El valor se inyecta en tiempo de ejecución, resolviéndose al directorio de datos de la aplicación.

Las variables disponibles son: $APPCONFIG, $APPDATA, $APPLOCALDATA, $APPCACHE, $APPLOG, $AUDIO, $CACHE, $CONFIG, $DATA, $LOCALDATA, $DESKTOP, $DOCUMENT, $DOWNLOAD, $EXE, $FONT, $HOME, $PICTURE, $PUBLIC, $RUNTIME, $TEMPLATE, $VIDEO, $RESOURCE, $TEMP.

Intentar ejecutar cualquier API con una URL no configurada en el alcance resulta en un rechazo de la promesa debido a acceso denegado.

2.0.0

AppCache: 16;

appCacheDir para más información.

Origen: undefined

AppConfig: 13;

appConfigDir para más información.

Origen: undefined

AppData: 14;

appDataDir para más información.

Origen: undefined

AppLocalData: 15;

appLocalDataDir para más información.

Origen: undefined

AppLog: 17;

appLogDir para más información.

Origen: undefined

Audio: 1;

audioDir para más información.

Origen: undefined

Cache: 2;

cacheDir para más información.

Origen: undefined

Configuración (Config)
Sección titulada “Config”
Config: 3;

configDir para más información.

Origen: undefined

Data: 4;

dataDir para más información.

Origen: undefined

Desktop: 18;

desktopDir para más información.

Origen: undefined

Document: 6;

documentDir para más información.

Origen: undefined

Download: 7;

downloadDir para más información.

Origen: undefined

Executable: 19;

executableDir para más información.

Origen: undefined

Font: 20;

fontDir para más información.

Origen: undefined

Home: 21;

homeDir para más información.

Origen: undefined

LocalData: 5;

localDataDir para más información.

Origen: undefined

Picture: 8;

pictureDir para más información.

Origen: undefined

Public: 9;

publicDir para más información.

Origen: undefined

Resource: 11;

resourceDir para más información.

Origen: undefined

Runtime: 22;

runtimeDir para más información.

Origen: undefined

Temp: 12;

tempDir para más información.

Origen: undefined

Template: 23;

templateDir para más información.

Origen: undefined

Video: 10;

videoDir para más información.

Origen: undefined


Current: 1;

Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L93

End: 2;

Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L94

Start: 0;

Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L92

La abstracción de Tauri para leer y escribir archivos.

2.0.0

  • Resource

new FileHandle(rid): FileHandle
Parámetro Tipo
rid number

FileHandle

Resource.constructor

Origen: undefined

get rid(): number

number

Resource.rid

Origen: undefined

close(): Promise<void>

Destruye y limpia este recurso de la memoria. Ya no deberías llamar a ningún método de este objeto y deberías descartar cualquier referencia a él.

Promise<void>

Resource.close

Origen: undefined

read(buffer): Promise<null | number>

Lee hasta p.byteLength bytes en p. Se resuelve al número de bytes leídos (0 < n <= p.byteLength) y se rechaza si se encuentra algún error. Incluso si read() se resuelve a n < p.byteLength, puede usar todo p como espacio de trabajo temporal durante la llamada. Si hay algunos datos disponibles pero no p.byteLength bytes, read() convencionalmente se resuelve a lo que está disponible en lugar de esperar por más.

Cuando read() encuentra una condición de fin de archivo (EOF), se resuelve a EOF (null).

Cuando read() encuentra un error, se rechaza con un error.

Quienes llamen a esta función siempre deben procesar los n > 0 bytes devueltos antes de considerar el EOF (null). Hacerlo maneja correctamente los errores de E/S que ocurren después de leer algunos bytes y también ambos comportamientos de EOF permitidos.

Parámetro Tipo
buffer Uint8Array

Promise<null | number>

import { open, BaseDirectory } from "@tauri-apps/plugin-fs"
// if "$APPCONFIG/foo/bar.txt" contains the text "hello world":
const file = await open("foo/bar.txt", { baseDir: BaseDirectory.AppConfig });
const buf = new Uint8Array(100);
const numberOfBytesRead = await file.read(buf); // 11 bytes
const text = new TextDecoder().decode(buf); // "hello world"
await file.close();

2.0.0

Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L327

seek(offset, whence): Promise<number>

Seek establece el desplazamiento para el siguiente read() o write() a offset, interpretado según whence: Start significa relativo al inicio del archivo, Current significa relativo al desplazamiento actual, y End significa relativo al final. Seek se resuelve al nuevo desplazamiento relativo al inicio del archivo.

Buscar (seek) hacia un desplazamiento antes del inicio del archivo es un error. Buscar a cualquier desplazamiento positivo es legal, pero el comportamiento de operaciones de E/S subsiguientes en el objeto subyacente depende de la implementación. Devuelve el número de la posición del cursor.

Parámetro Tipo
offset number
whence SeekMode

Promise<number>

import { open, SeekMode, BaseDirectory } from '@tauri-apps/plugin-fs';
// Given hello.txt pointing to file with "Hello world", which is 11 bytes long:
const file = await open('hello.txt', { read: true, write: true, truncate: true, create: true, baseDir: BaseDirectory.AppLocalData });
await file.write(new TextEncoder().encode("Hello world"));
// Seek 6 bytes from the start of the file
console.log(await file.seek(6, SeekMode.Start)); // "6"
// Seek 2 more bytes from the current position
console.log(await file.seek(2, SeekMode.Current)); // "8"
// Seek backwards 2 bytes from the end of the file
console.log(await file.seek(-2, SeekMode.End)); // "9" (e.g. 11-2)
await file.close();

2.0.0

Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L382

stat(): Promise<FileInfo>

Devuelve un FileInfo para este archivo.

Promise<FileInfo>

import { open, BaseDirectory } from '@tauri-apps/plugin-fs';
const file = await open("file.txt", { read: true, baseDir: BaseDirectory.AppLocalData });
const fileInfo = await file.stat();
console.log(fileInfo.isFile); // true
await file.close();

2.0.0

Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L404

truncate(len?): Promise<void>

Trunca o extiende este archivo para alcanzar el len especificado. Si no se especifica len, se trunca todo el contenido del archivo.

Parámetro Tipo
len? number

Promise<void>

import { open, BaseDirectory } from '@tauri-apps/plugin-fs';
// truncate the entire file
const file = await open("my_file.txt", { read: true, write: true, create: true, baseDir: BaseDirectory.AppLocalData });
await file.truncate();
// truncate part of the file
const file = await open("my_file.txt", { read: true, write: true, create: true, baseDir: BaseDirectory.AppLocalData });
await file.write(new TextEncoder().encode("Hello World"));
await file.truncate(7);
const data = new Uint8Array(32);
await file.read(data);
console.log(new TextDecoder().decode(data)); // Hello W
await file.close();

2.0.0

Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L436

write(data): Promise<number>

Escribe data.byteLength bytes desde data en el flujo de datos subyacente. Se resuelve al número de bytes escritos desde data (0 <= n <= data.byteLength) o se rechaza con el error encontrado que causó que la escritura se detuviera antes de tiempo. write() debe rechazarse con un error no nulo si se resolviera a n < data.byteLength. write() no debe modificar los datos del slice, ni siquiera temporalmente.

Parámetro Tipo
data Uint8Array

Promise<number>

import { open, write, BaseDirectory } from '@tauri-apps/plugin-fs';
const encoder = new TextEncoder();
const data = encoder.encode("Hello world");
const file = await open("bar.txt", { write: true, baseDir: BaseDirectory.AppLocalData });
const bytesWritten = await file.write(data); // 11
await file.close();

2.0.0

Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L463

2.0.0

Propiedad Tipo Descripción Definido en
fromPathBaseDir? BaseDirectory Directorio base para fromPath. Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L599
toPathBaseDir? BaseDirectory Directorio base para toPath. Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L601

2.0.0

Propiedad Tipo Descripción Definido en
baseDir? BaseDirectory Directorio base para path Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L476

2.0.0

Propiedad Tipo Descripción Heredado de Definido en
baseDir? BaseDirectory Directorio base para path WatchOptions.baseDir Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L1195
delayMs? number Retardo de debounce - Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L1203
recursive? boolean Observar un directorio de forma recursiva WatchOptions.recursive Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L1193

Una entrada de disco que es un archivo, un directorio o un symlink.

Este es el resultado de la función readDir.

2.0.0

Propiedad Tipo Descripción Definido en
isDirectory boolean Especifica si esta entrada es un directorio o no. Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L690
isFile boolean Especifica si esta entrada es un archivo o no. Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L692
isSymlink boolean Especifica si esta entrada es un symlink o no. Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L694
name string El nombre de la entrada (nombre de archivo con extensión o nombre de directorio). Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L688

2.0.0

Propiedad Tipo Descripción Definido en
baseDir? BaseDirectory Directorio base para path. Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L1160

Un FileInfo describe un archivo y es devuelto por stat, lstat o fstat.

2.0.0

Propiedad Tipo Descripción Definido en
atime null | Date La hora de último acceso del archivo. Esto corresponde al campo atime de stat en Unix y a ftLastAccessTime en Windows. Es posible que no esté disponible en todas las plataformas. Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L133
birthtime null | Date La hora de creación del archivo. Esto corresponde al campo birthtime de stat en Mac/BSD y a ftCreationTime en Windows. Es posible que no esté disponible en todas las plataformas. Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L139
blksize null | number Tamaño de bloque para la E/S del sistema de archivos. Específico de la plataforma - Windows: No soportado. Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L216
blocks null | number Número de bloques asignados al archivo, en unidades de 512 bytes. Específico de la plataforma - Windows: No soportado. Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L224
dev null | number ID del dispositivo que contiene el archivo. Específico de la plataforma - Windows: No soportado. Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L159
fileAttributes null | number Este campo contiene la información de atributos del sistema de archivos para un archivo o directorio. Para posibles valores y sus descripciones, consulta Constantes de Atributos de Archivo en el Dev Center de Windows. Específico de la plataforma - macOS / Linux / Android / iOS: No soportado. Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L151
gid null | number ID del grupo propietario de este archivo. Específico de la plataforma - Windows: No soportado. Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L200
ino null | number Número de Inode. Específico de la plataforma - Windows: No soportado. Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L167
isDirectory boolean Verdadero si esta información corresponde a un directorio regular. Mutuamente excluyente con FileInfo.isFile y FileInfo.isSymlink. Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L112
isFile boolean Verdadero si esta información corresponde a un archivo regular. Mutuamente excluyente con FileInfo.isDirectory y FileInfo.isSymlink. Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L107
isSymlink boolean Verdadero si esta información corresponde a un symlink. Mutuamente excluyente con FileInfo.isFile y FileInfo.isDirectory. Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L117
mode null | number Los bits raw de st_mode subyacentes que contienen los permisos estándar de Unix para este archivo/directorio. Específico de la plataforma - Windows: No soportado. Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L176
mtime null | Date La última hora de modificación del archivo. Esto corresponde al campo mtime de stat en Linux/macOS y a ftLastWriteTime en Windows. Es posible que no esté disponible en todas las plataformas. Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L127
nlink null | number Número de enlaces duros (hard links) que apuntan a este archivo. Específico de la plataforma - Windows: No soportado. Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L184
rdev null | number ID del dispositivo de este archivo. Específico de la plataforma - Windows: No soportado. Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L208
readonly boolean Si este es un archivo de solo lectura (no escribible). Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L141
size number El tamaño del archivo, en bytes. Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L121
uid null | number ID de usuario del propietario de este archivo. Específico de la plataforma - Windows: No soportado. Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L192

2.0.0

Propiedad Tipo Descripción Definido en
baseDir? BaseDirectory Directorio base para path Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L644
mode? number Permisos que se utilizarán al crear el directorio (por defecto es 0o777, antes del umask del proceso). Ignorado en Windows. Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L638
recursive? boolean Por defecto es false. Si se establece en true, significa que también se crearán los directorios intermedios (como ocurre con el comando de shell mkdir -p). Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L642

2.0.0

Propiedad Tipo Descripción Definido en
append? boolean Establece la opción para el modo de anexado (append). Esta opción, cuando es true, significa que las escrituras se anexarán al archivo en lugar de sobrescribir el contenido anterior. Ten en cuenta que establecer { write: true, append: true } tiene el mismo efecto que establecer únicamente { append: true }. Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L531
baseDir? BaseDirectory Directorio base para path Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L559
create? boolean Establece la opción para permitir crear un nuevo archivo, si no existe uno en la ruta especificada. Requiere el uso de acceso de escritura o anexado (append). Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L544
createNew? boolean Por defecto es false. Si se establece en true, no se permite que exista ningún archivo, directorio o symlink en la ubicación de destino. Requiere el uso de acceso de escritura o anexado. Cuando createNew se establece en true, create y truncate se ignoran. Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L551
mode? number Permisos que se utilizarán al crear el archivo (por defecto es 0o666, antes del umask del proceso). Ignorado en Windows. Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L557
read? boolean Establece la opción para el acceso de lectura. Esta opción, cuando es true, significa que el archivo se podrá leer si se abre. Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L517
truncate? boolean Establece la opción para truncar un archivo previo. Si un archivo se abre exitosamente con esta opción establecida, truncará el archivo a tamaño 0 si ya existe. El archivo se debe abrir con acceso de escritura para que truncar funcione. Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L538
write? boolean Establece la opción para el acceso de escritura. Esta opción, cuando es true, significa que el archivo se podrá escribir si se abre. Si el archivo ya existe, cualquier llamada de escritura en él sobrescribirá su contenido, por defecto sin truncarlo. Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L524

2.0.0

Propiedad Tipo Descripción Definido en
baseDir? BaseDirectory Directorio base para path Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L676

2.0.0

Propiedad Tipo Descripción Definido en
baseDir? BaseDirectory Directorio base para path Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L738
encoding? string Codificación de texto a usar al leer un archivo de texto. Por defecto es 'utf-8'. Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L740

2.0.0

Propiedad Tipo Descripción Definido en
baseDir? BaseDirectory Directorio base para path Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L882
recursive? boolean Por defecto es false. Si se establece en true, la ruta se eliminará incluso si es un directorio no vacío. Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L880

2.0.0

Propiedad Tipo Descripción Definido en
newPathBaseDir? BaseDirectory Directorio base para newPath. Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L918
oldPathBaseDir? BaseDirectory Directorio base para oldPath. Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L916

2.0.0

Propiedad Tipo Descripción Definido en
baseDir? BaseDirectory Directorio base para path. Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L960

2.0.0

Propiedad Tipo Descripción Definido en
baseDir? BaseDirectory Directorio base para path. Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L1019

2.0.0

Propiedad Tipo Definido en
attrs unknown Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L1212
paths string[] Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L1211
type WatchEventKind Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L1210

2.0.0

Propiedad Tipo Descripción Definido en
baseDir? BaseDirectory Directorio base para path Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L1195
recursive? boolean Observar un directorio de forma recursiva Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L1193

2.0.0

Propiedad Tipo Descripción Definido en
append? boolean Por defecto es false. Si se establece en true, se anexará al archivo en lugar de sobrescribir el contenido anterior. Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L1063
baseDir? BaseDirectory Directorio base para path Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L1071
create? boolean Establece la opción para permitir crear un nuevo archivo, si no existe uno en la ruta especificada (por defecto es true). Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L1065
createNew? boolean Establece la opción para crear un nuevo archivo, fallando si ya existe. Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L1067
mode? number Permisos de archivo. Ignorado en Windows. Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L1069

type UnwatchFn: () => void;

void

2.0.0

Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L1277


type WatchEventKind:
| "any"
| object
| object
| object
| object
| "other";

2.0.0

Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L1218


type WatchEventKindAccess: object | object | object | object;

2.0.0

Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L1229


type WatchEventKindCreate: object | object | object | object;

2.0.0

Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L1238


type WatchEventKindModify:
| object
| object
| object
| object
| object;

2.0.0

Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L1247


type WatchEventKindRemove: object | object | object | object;

2.0.0

Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L1267

function copyFile(
fromPath,
toPath,
options?): Promise<void>

Copia el contenido y los permisos de un archivo a otra ruta especificada, creando por defecto un nuevo archivo si es necesario, o sobrescribiéndolo.

Parámetro Tipo
fromPath string | URL
toPath string | URL
options? CopyFileOptions

Promise<void>

import { copyFile, BaseDirectory } from '@tauri-apps/plugin-fs';
await copyFile('app.conf', 'app.conf.bk', { fromPathBaseDir: BaseDirectory.AppConfig, toPathBaseDir: BaseDirectory.AppConfig });

2.0.0

Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L614


function create(path, options?): Promise<FileHandle>

Crea un archivo si no existe ninguno o trunca un archivo existente y se resuelve a una instancia de FileHandle.

Parámetro Tipo
path string | URL
options? CreateOptions

Promise<FileHandle>

import { create, BaseDirectory } from "@tauri-apps/plugin-fs"
const file = await create("foo/bar.txt", { baseDir: BaseDirectory.AppConfig });
await file.write(new TextEncoder().encode("Hello world"));
await file.close();

2.0.0

Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L493


function exists(path, options?): Promise<boolean>

Comprueba si existe una ruta.

Parámetro Tipo
path string | URL
options? ExistsOptions

Promise<boolean>

import { exists, BaseDirectory } from '@tauri-apps/plugin-fs';
// Check if the `$APPDATA/avatar.png` file exists
await exists('avatar.png', { baseDir: BaseDirectory.AppData });

2.0.0

Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L1174


function lstat(path, options?): Promise<FileInfo>

Se resuelve a un FileInfo para la ruta path especificada. Si path es un symlink, se devolverá la información del symlink en lugar de lo que apunta.

Parámetro Tipo
path string | URL
options? StatOptions

Promise<FileInfo>

import { lstat, BaseDirectory } from '@tauri-apps/plugin-fs';
const fileInfo = await lstat("hello.txt", { baseDir: BaseDirectory.AppLocalData });
console.log(fileInfo.isFile); // true

2.0.0

Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L1002


function mkdir(path, options?): Promise<void>

Crea un nuevo directorio con la ruta especificada.

Parámetro Tipo
path string | URL
options? MkdirOptions

Promise<void>

import { mkdir, BaseDirectory } from '@tauri-apps/plugin-fs';
await mkdir('users', { baseDir: BaseDirectory.AppLocalData });

2.0.0

Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L657


function open(path, options?): Promise<FileHandle>

Abre un archivo y se resuelve a una instancia de FileHandle. El archivo no necesita existir previamente si se utilizan las opciones de apertura create o createNew. Es responsabilidad de quien llama cerrar el archivo cuando haya terminado con él.

Parámetro Tipo
path string | URL
options? OpenOptions

Promise<FileHandle>

import { open, BaseDirectory } from "@tauri-apps/plugin-fs"
const file = await open("foo/bar.txt", { read: true, write: true, baseDir: BaseDirectory.AppLocalData });
// Do work with file
await file.close();

2.0.0

Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L578


function readDir(path, options?): Promise<DirEntry[]>

Lee el directorio dado por la ruta y devuelve un array de DirEntry.

Parámetro Tipo
path string | URL
options? ReadDirOptions

Promise<DirEntry[]>

import { readDir, BaseDirectory } from '@tauri-apps/plugin-fs';
import { join } from '@tauri-apps/api/path';
const dir = "users"
const entries = await readDir('users', { baseDir: BaseDirectory.AppLocalData });
processEntriesRecursively(dir, entries);
async function processEntriesRecursively(parent, entries) {
for (const entry of entries) {
console.log(`Entry: ${entry.name}`);
if (entry.isDirectory) {
const dir = await join(parent, entry.name);
processEntriesRecursively(dir, await readDir(dir, { baseDir: BaseDirectory.AppLocalData }))
}
}
}

2.0.0

Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L719


function readFile(path, options?): Promise<Uint8Array>

Lee y se resuelve a todo el contenido de un archivo como un array de bytes. Se puede usar TextDecoder para transformar los bytes a cadena de texto (string) si es necesario.

Parámetro Tipo
path string | URL
options? ReadFileOptions

Promise<Uint8Array>

import { readFile, BaseDirectory } from '@tauri-apps/plugin-fs';
const contents = await readFile('avatar.png', { baseDir: BaseDirectory.Resource });

2.0.0

Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L754


function readTextFile(path, options?): Promise<string>

Lee y devuelve todo el contenido de un archivo como una cadena de texto (string) utilizando la codificación especificada (por defecto: UTF-8).

Parámetro Tipo
path string | URL
options? ReadFileOptions

Promise<string>

import { readTextFile, BaseDirectory } from '@tauri-apps/plugin-fs';
const contents = await readTextFile('app.conf', { baseDir: BaseDirectory.AppConfig });

2.0.0

Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L780


function readTextFileLines(path, options?): Promise<AsyncIterableIterator<string>>

Devuelve un AsyncIterableIterator asíncrono sobre las líneas de un archivo, decodificado usando la codificación especificada (por defecto: UTF-8).

Parámetro Tipo
path string | URL
options? ReadFileOptions

Promise<AsyncIterableIterator<string>>

import { readTextFileLines, BaseDirectory } from '@tauri-apps/plugin-fs';
const lines = await readTextFileLines('app.conf', { baseDir: BaseDirectory.AppConfig });
for await (const line of lines) {
console.log(line);
}

También podrías llamar a AsyncIterableIterator.next para hacer avanzar el iterador y así poder leer de forma perezosa (lazy) la siguiente línea cuando quieras.

2.0.0

Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L813


function remove(path, options?): Promise<void>

Elimina el archivo o directorio nombrado. Si el directorio no está vacío y la opción recursive no se establece en true, se rechazará la promesa.

Parámetro Tipo
path string | URL
options? RemoveOptions

Promise<void>

import { remove, BaseDirectory } from '@tauri-apps/plugin-fs';
await remove('users/file.txt', { baseDir: BaseDirectory.AppLocalData });
await remove('users', { baseDir: BaseDirectory.AppLocalData });

2.0.0

Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L897


function rename(
oldPath,
newPath,
options?): Promise<void>

Renombra (mueve) oldpath a newpath. Las rutas pueden ser archivos o directorios. Si newpath ya existe y no es un directorio, rename() lo reemplaza. Pueden aplicarse restricciones específicas del sistema operativo cuando oldpath y newpath están en directorios diferentes.

En Unix, esta operación no sigue enlaces simbólicos (symlinks) en ninguna de las dos rutas.

Parámetro Tipo
oldPath string | URL
newPath string | URL
options? RenameOptions

Promise<void>

import { rename, BaseDirectory } from '@tauri-apps/plugin-fs';
await rename('avatar.png', 'deleted.png', { oldPathBaseDir: BaseDirectory.App, newPathBaseDir: BaseDirectory.AppLocalData });

2.0.0

Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L936


function size(path): Promise<number>

Obtiene el tamaño de un archivo o directorio. Para archivos, también se pueden utilizar las funciones stat.

Si path es un directorio, esta función iterará recursivamente sobre cada archivo y cada directorio dentro de path y, por lo tanto, consumirá mucho tiempo si se usa en directorios más grandes.

Parámetro Tipo
path string | URL

Promise<number>

import { size, BaseDirectory } from '@tauri-apps/plugin-fs';
// Get the size of the `$APPDATA/tauri` directory.
const dirSize = await size('tauri', { baseDir: BaseDirectory.AppData });
console.log(dirSize); // 1024

2.1.0

Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L1359


function startAccessingSecurityScopedResource(path): Promise<void>

Inicia el acceso a un recurso con alcance de seguridad para la URL de archivo dada. Se debe llamar a esto cuando estés accediendo a un archivo que fue abierto usando una URL con alcance de seguridad (por ejemplo, desde un selector de archivos).

Ten en cuenta que el acceso a recursos con alcance de seguridad es gestionado automáticamente por el plugin en iOS, por lo que no necesitas llamar a esta función a menos que quieras gestionar el alcance manualmente.

Debes llamar a stopAccessingSecurityScopedResource cuando hayas terminado de acceder al recurso.

Específico de la plataforma

  • iOS: Inicia el acceso al recurso con alcance de seguridad.
  • Otras plataformas: no hace nada.
Parámetro Tipo
path string | URL

Promise<void>

import { startAccessingSecurityScopedResource } from '@tauri-apps/plugin-fs';
const filePath = 'file:///path/to/file.txt';
await startAccessingSecurityScopedResource(filePath);
// ... use the resource ...

2.5.0

Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L1395


function stat(path, options?): Promise<FileInfo>

Se resuelve a un FileInfo para la ruta path especificada. Siempre seguirá los symlinks pero se rechazará si el symlink apunta a una ruta fuera del alcance.

Parámetro Tipo
path string | URL
options? StatOptions

Promise<FileInfo>

import { stat, BaseDirectory } from '@tauri-apps/plugin-fs';
const fileInfo = await stat("hello.txt", { baseDir: BaseDirectory.AppLocalData });
console.log(fileInfo.isFile); // true

2.0.0

Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L976


function stopAccessingSecurityScopedResource(path): Promise<void>

Detiene el acceso a un recurso con alcance de seguridad para la URL de archivo dada. Se debe llamar a esto cuando hayas terminado de acceder a un archivo abierto usando una URL con alcance de seguridad (por ejemplo, desde un selector de archivos) cuando se usa seguimiento manual mediante startAccessingSecurityScopedResource.

Específico de la plataforma

  • iOS: Detiene el acceso al recurso con alcance de seguridad.
  • Otras plataformas: no hace nada.
Parámetro Tipo
path string | URL

Promise<void>

import { stopAccessingSecurityScopedResource } from '@tauri-apps/plugin-fs';
const filePath = 'file:///path/to/file.txt';
await startAccessingSecurityScopedResource(filePath);
// ... use the resource ...
// when you're done with the resource:
await stopAccessingSecurityScopedResource(filePath);

2.5.0

Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L1430


function truncate(
path,
len?,
options?): Promise<void>

Trunca o extiende el archivo especificado para alcanzar el len especificado. Si len es 0 o no se especifica, se trunca todo el contenido del archivo.

Parámetro Tipo
path string | URL
len? number
options? TruncateOptions

Promise<void>

import { truncate, readTextFile, writeTextFile, BaseDirectory } from '@tauri-apps/plugin-fs';
// truncate the entire file
await truncate("my_file.txt", 0, { baseDir: BaseDirectory.AppLocalData });
// truncate part of the file
const filePath = "file.txt";
await writeTextFile(filePath, "Hello World", { baseDir: BaseDirectory.AppLocalData });
await truncate(filePath, 7, { baseDir: BaseDirectory.AppLocalData });
const data = await readTextFile(filePath, { baseDir: BaseDirectory.AppLocalData });
console.log(data); // "Hello W"

2.0.0

Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L1042


function watch(
paths,
cb,
options?): Promise<UnwatchFn>

Observa cambios (tras un retardo) en archivos o directorios.

Parámetro Tipo
paths string | URL | string[] | URL[]
cb (event) => void
options? DebouncedWatchOptions

Promise<UnwatchFn>

2.0.0

Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L1316


function watchImmediate(
paths,
cb,
options?): Promise<UnwatchFn>

Observa cambios en archivos o directorios.

Parámetro Tipo
paths string | URL | string[] | URL[]
cb (event) => void
options? WatchOptions

Promise<UnwatchFn>

2.0.0

Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L1333


function writeFile(
path,
data,
options?): Promise<void>

Escribe data en la ruta path dada, creando por defecto un nuevo archivo si es necesario, o sobrescribiéndolo.

Parámetro Tipo
path string | URL
data Uint8Array | ReadableStream<Uint8Array>
options? WriteFileOptions

Promise<void>

import { writeFile, BaseDirectory } from '@tauri-apps/plugin-fs';
let encoder = new TextEncoder();
let data = encoder.encode("Hello World");
await writeFile('file.txt', data, { baseDir: BaseDirectory.AppLocalData });

2.0.0

Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L1087


function writeTextFile(
path,
data,
options?): Promise<void>

Escribe la cadena UTF-8 data en la ruta path dada, creando por defecto un nuevo archivo si es necesario, o sobrescribiéndolo.

Parámetro Tipo
path string | URL
data string
options? WriteFileOptions

Promise<void>

import { writeTextFile, BaseDirectory } from '@tauri-apps/plugin-fs';
await writeTextFile('file.txt', "Hello world", { baseDir: BaseDirectory.AppLocalData });

2.0.0

Source: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/fs/guest-js/index.ts#L1136


© 2026 Colaboradores de Tauri. CC-BY / MIT