Primeros pasos
Copia un prompt de configuración con los pasos de instalación y la guía completa en markdown para este plugin.
Set up this Capacitor plugin in the project.
Use the package manager already used by the project.
Install these package(s): `@capgo/capacitor-file`
Run the required Capacitor sync/update step after installation.
Read this markdown guide for the full setup steps: https://raw.githubusercontent.com/Cap-go/website/refs/heads/main/apps/docs/src/content/docs/docs/plugins/file/getting-started.mdx
Use that guide for platform-specific steps, native file edits, permissions, config changes, imports, and usage setup.
If that guide references other docs pages, read them too.
Instalar
Sección titulada “Instalación”Puedes usar nuestro setup asistido por IA para instalar el plugin. Añade las skills de Capgo a tu herramienta de IA con el siguiente comando:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsLuego usa el siguiente prompt:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-file` plugin in my project.Si prefieres la configuración manual, instala el plugin ejecutando estos comandos y sigue las instrucciones de cada plataforma:
npm install @capgo/capacitor-filenpx cap syncImportar
Sección titulada “Importar”import { CapacitorFile } from '@capgo/capacitor-file';Inicio rápido
Sección titulada “Inicio rápido”import { CapacitorFile, FileSystemType } from '@capgo/capacitor-file';
const result = await CapacitorFile.requestFileSystem({ type: FileSystemType.TEMPORARY });console.log(result);Ejemplo: resolveLocalFileSystemURL
Sección titulada “Example: resolveLocalFileSystemURL”import { CapacitorFile } from '@capgo/capacitor-file';
const result = await CapacitorFile.resolveLocalFileSystemURL({ url: 'file:///data/user/0/com.example.app/files/report.pdf',});console.log(result);Ejemplo: getFile
Sección titulada “Ejemplo: getFile”import { CapacitorFile } from '@capgo/capacitor-file';
const result = await CapacitorFile.getFile({ path: 'path/to/file' });console.log(result);Errores comunes
Sección titulada “Errores comunes”- Permisos: llama a
checkPermissions()luegorequestPermissions()cuando sea necesario. - Listeners: elimina los handles cuando se desmonten las pantallas.
- Fuente de verdad: confianza
src/definitions.tsen el repo de GitHub.
Resumen de API
Sección titulada “Resumen de API”requestFileSystem
Sección titulada “requestFileSystem”Solicitar un sistema de archivos.
import { CapacitorFile, FileSystemType } from '@capgo/capacitor-file';
const result = await CapacitorFile.requestFileSystem({ type: FileSystemType.TEMPORARY });console.log(result);resolveLocalFileSystemURL
Sección titulada “resolveLocalFileSystemURL”Resolver una URL de archivo a una entrada.
import { CapacitorFile } from '@capgo/capacitor-file';
const result = await CapacitorFile.resolveLocalFileSystemURL({ url: 'https://example.com' });console.log(result);getFile
Sección titulada “getFile”Obtener una entrada de archivo.
import { CapacitorFile } from '@capgo/capacitor-file';
const result = await CapacitorFile.getFile({ path: 'path/to/file' });console.log(result);getDirectory
Sección titulada “getDirectory”Obtener una entrada de directorio.
import { CapacitorFile } from '@capgo/capacitor-file';
const result = await CapacitorFile.getDirectory({ path: 'path/to/file' });console.log(result);readFile
Sección titulada “readFile”Leer un archivo como texto o base64.
import { CapacitorFile } from '@capgo/capacitor-file';
const result = await CapacitorFile.readFile({ path: 'path/to/file' });console.log(result);readAsDataURL
Sección titulada “readAsDataURL”Leer un archivo como data URL (base64 con prefijo de tipo MIME).
import { CapacitorFile } from '@capgo/capacitor-file';
const result = await CapacitorFile.readAsDataURL({ path: 'path/to/file' });console.log(result);writeFile
Sección titulada “writeFile”Escribir datos en un archivo.
import { CapacitorFile } from '@capgo/capacitor-file';
const result = await CapacitorFile.writeFile({ path: 'path/to/file', data: 'data',});console.log(result);appendFile
Sección titulada “appendFile”Añade datos a un archivo.
import { CapacitorFile } from '@capgo/capacitor-file';
const result = await CapacitorFile.appendFile({ path: 'path/to/file', data: 'data',});console.log(result);deleteFile
Sección titulada “deleteFile”Elimina un archivo.
import { CapacitorFile } from '@capgo/capacitor-file';
await CapacitorFile.deleteFile({ path: 'path/to/file' });Crea un directorio.
import { CapacitorFile } from '@capgo/capacitor-file';
await CapacitorFile.mkdir({ path: 'path/to/file' });Elimina un directorio.
import { CapacitorFile } from '@capgo/capacitor-file';
await CapacitorFile.rmdir({ path: 'path/to/file' });readdir
Sección titulada “readdir”Lee el contenido de un directorio.
import { CapacitorFile } from '@capgo/capacitor-file';
const result = await CapacitorFile.readdir({ path: 'path/to/file' });console.log(result);Obtén metadatos de un archivo o directorio.
import { CapacitorFile } from '@capgo/capacitor-file';
const result = await CapacitorFile.stat({ path: 'path/to/file' });console.log(result);getMetadata
Sección titulada “getMetadata”Obtén metadatos de un archivo o directorio. Alias de stat().
import { CapacitorFile } from '@capgo/capacitor-file';
const result = await CapacitorFile.getMetadata({ path: 'path/to/file' });console.log(result);Renombra o mueve un archivo o directorio.
import { CapacitorFile } from '@capgo/capacitor-file';
await CapacitorFile.rename({ from: 'from', to: 'to',});Mueve un archivo o directorio. Alias de rename().
import { CapacitorFile } from '@capgo/capacitor-file';
await CapacitorFile.move({ from: 'from', to: 'to',});Copia un archivo o directorio.
import { CapacitorFile } from '@capgo/capacitor-file';
const result = await CapacitorFile.copy({ from: 'from', to: 'to',});console.log(result);Comprueba si un archivo o directorio existe.
import { CapacitorFile } from '@capgo/capacitor-file';
const result = await CapacitorFile.exists({ path: 'path/to/file' });console.log(result);Obtén la URI de un archivo.
import { CapacitorFile } from '@capgo/capacitor-file';
const result = await CapacitorFile.getUri({ path: 'path/to/file' });console.log(result);truncate
Sección titulada “truncate”Trunca un archivo a un tamaño específico.
import { CapacitorFile } from '@capgo/capacitor-file';
await CapacitorFile.truncate({ path: 'path/to/file' });getDirectories
Sección titulada “getDirectories”Get all known file system directories.
import { CapacitorFile } from '@capgo/capacitor-file';
const result = await CapacitorFile.getDirectories();console.log(result);getFreeDiskSpace
Sección titulada “getFreeDiskSpace”Obtén el espacio libre en disco en bytes.
import { CapacitorFile } from '@capgo/capacitor-file';
const result = await CapacitorFile.getFreeDiskSpace();console.log(result);checkPermissions
Sección titulada “checkPermissions”Comprueba el estado actual de los permisos para operaciones con archivos. En Android, esto verifica los permisos de almacenamiento externo. En iOS y web, siempre devuelve ‘granted’ ya que no se requieren permisos especiales.
import { CapacitorFile } from '@capgo/capacitor-file';
const result = await CapacitorFile.checkPermissions();console.log(result);requestPermissions
Sección titulada “requestPermissions”Solicita permisos para operaciones de archivos. En Android, esto pide los permisos de almacenamiento externo necesarios para acceder a archivos fuera de los directorios privados de la app. En iOS y web, siempre devuelve ‘granted’ ya que no requiere permisos especiales.
import { CapacitorFile } from '@capgo/capacitor-file';
const result = await CapacitorFile.requestPermissions();console.log(result);Referencia de tipos
Sección titulada “Referencia de tipos”RequestFileSystemOptions
Sección titulada “RequestFileSystemOptions”Opciones para solicitar un sistema de archivos.
export interface RequestFileSystemOptions { /** The type of file system to request */ type: FileSystemType; /** Requested size in bytes (may not be enforced on all platforms) */ size?: number;}FileSystem
Sección titulada “FileSystem”Representa un sistema de archivos.
export interface FileSystem { /** The name of the file system */ name: string; /** The root directory of the file system */ root: DirectoryEntry;}ResolveURLOptions
Sección titulada “ResolveURLOptions”Opciones para resolver una URL a una entrada.
export interface ResolveURLOptions { /** The URL to resolve (file:// or cdvfile://) */ url: string;}Representa una entrada de archivo o directorio.
export interface Entry { /** True if this is a file */ isFile: boolean; /** True if this is a directory */ isDirectory: boolean; /** The name of the file or directory */ name: string; /** The full path relative to the filesystem root */ fullPath: string; /** The native file:// URI */ nativeURL: string;}GetFileOptions
Sección titulada “GetFileOptions”Opciones para obtener un archivo.
export interface GetFileOptions { /** Path to the file */ path: string; /** Base directory */ directory?: Directory; /** Options for creating the file */ options?: GetOptions;}FileEntry
Sección titulada “FileEntry”Representa una entrada de archivo.
export interface FileEntry extends Entry { isFile: true; isDirectory: false;}GetDirectoryOptions
Sección titulada “GetDirectoryOptions”Opciones para obtener un directorio.
export interface GetDirectoryOptions { /** Path to the directory */ path: string; /** Base directory */ directory?: Directory; /** Options for creating the directory */ options?: GetOptions;}DirectoryEntry
Sección titulada “DirectoryEntry”Representa una entrada de directorio.
export interface DirectoryEntry extends Entry { isFile: false; isDirectory: true;}ReadFileOptions
Sección titulada “ReadFileOptions”Opciones para leer un archivo.
export interface ReadFileOptions { /** Path to the file */ path: string; /** Base directory */ directory?: Directory; /** Encoding for text files (omit for binary/base64) */ encoding?: Encoding; /** Byte offset to start reading from (default: 0) */ offset?: number; /** Number of bytes to read (default: read to end of file) */ length?: number;}ReadFileResult
Sección titulada “ReadFileResult”Resultado de la lectura de un archivo.
export interface ReadFileResult { /** File contents as string (text) or base64 (binary) */ data: string;}WriteFileOptions
Sección titulada “WriteFileOptions”Opciones para escribir un archivo.
export interface WriteFileOptions { /** Path to the file */ path: string; /** Base directory */ directory?: Directory; /** Data to write (string for text, base64 for binary) */ data: string; /** Encoding for text files */ encoding?: Encoding; /** If true, append to existing file instead of overwriting */ append?: boolean; /** Create intermediate directories if they don't exist */ recursive?: boolean; /** Byte position to start writing at (for random access writes). If not specified, writes from beginning or appends based on 'append' flag */ position?: number;}WriteFileResult
Sección titulada “WriteFileResult”Resultado de la escritura de un archivo.
export interface WriteFileResult { /** The URI of the written file */ uri: string;}Fuente de verdad
Sección titulada “Fuente de verdad”Esta página se genera a partir del plugin src/definitions.ts. Vuelve a ejecutar el sync cuando el API público cambie en upstream.
Continúa desde Getting Started
Sección titulada “Continúa desde Primeros pasos”Si estás usando Primeros pasos para planificar el almacenamiento y la gestión de archivos, conéctalo con Uso de @capgo/capacitor-file para la capacidad nativa al usar @capgo/capacitor-file, @capgo/capacitor-data-storage-sqlite para el detalle de implementación en @capgo/capacitor-data-storage-sqlite, Uso de @capgo/capacitor-data-storage-sqlite para la funcionalidad nativa en Uso de @capgo/capacitor-data-storage-sqlite, @capgo/capacitor-file para el detalle de implementación en @capgo/capacitor-file, y @capgo/capacitor-uploader para el detalle de implementación en @capgo/capacitor-uploader.