指南
如何在 Capacitor 中使用 File
使用 @capgo/capacitor-file
Capacitor File 插件实现了类似于 Cordova File 插件的文件系统操作。
安装
bun add @capgo/capacitor-file
bunx cap sync
bunx cap sync 将插件的原生 code 复制到你的原生项目中。每次升级插件后都要重新运行。
导入
import { CapacitorFile } from '@capgo/capacitor-file';
API 概览
| 方法 | 描述 |
|---|---|
requestFileSystem |
请求文件系统。 |
resolveLocalFileSystemURL |
将文件 URL 解析为条目。 |
getFile |
获取文件条目。 |
getDirectory |
获取目录条目。 |
readFile |
将文件读取为文本或 base64。 |
readAsDataURL |
将文件读取为 data URL (带 MIME 类型前缀的 base64)。 |
writeFile |
将数据写入文件。 |
appendFile |
向文件追加数据。 |
deleteFile |
删除文件。 |
mkdir |
创建目录。 |
rmdir |
删除目录。 |
readdir |
读取目录内容。 |
stat |
获取文件或目录的元数据。 |
getMetadata |
获取文件或目录的元数据。stat() 的别名。 |
rename |
重命名或移动文件或目录。 |
move |
移动文件或目录。rename() 的别名。 |
copy |
复制文件或目录。 |
exists |
检查文件或目录是否存在。 |
getUri |
获取文件的 URI。 |
truncate |
将文件截断至指定大小。 |
getDirectories |
获取所有已知的文件系统目录。 |
getFreeDiskSpace |
获取以字节为单位的剩余磁盘空间。 |
checkPermissions |
检查当前文件操作的权限状态。在 Android 上,这会检查外部存储权限。在 iOS 和 Web 上,由于不需要特殊权限,始终返回 'granted'。 |
requestPermissions |
请求文件操作权限。在 Android 上,这会请求访问应用私有目录以外文件所需的外部存储权限。在 iOS 和 Web 上,由于不需要特殊权限,始终返回 'granted'。 |
示例
requestFileSystem()
请求文件系统。
import { CapacitorFile, FileSystemType } from '@capgo/capacitor-file';
const result = await CapacitorFile.requestFileSystem({ type: FileSystemType.TEMPORARY });
console.log(result);
resolveLocalFileSystemURL()
将文件 URL 解析为条目。
import { CapacitorFile } from '@capgo/capacitor-file';
const result = await CapacitorFile.resolveLocalFileSystemURL({ url: 'https://example.com' });
console.log(result);
getFile()
获取文件条目。
import { CapacitorFile } from '@capgo/capacitor-file';
const result = await CapacitorFile.getFile({ path: 'path/to/file' });
console.log(result);
getDirectory()
获取目录条目。
import { CapacitorFile } from '@capgo/capacitor-file';
const result = await CapacitorFile.getDirectory({ path: 'path/to/file' });
console.log(result);
readFile()
将文件读取为文本或 base64。
import { CapacitorFile } from '@capgo/capacitor-file';
const result = await CapacitorFile.readFile({ path: 'path/to/file' });
console.log(result);
readAsDataURL()
将文件读取为 data URL(带有 MIME 类型前缀的 base64)。
import { CapacitorFile } from '@capgo/capacitor-file';
const result = await CapacitorFile.readAsDataURL({ path: 'path/to/file' });
console.log(result);
上表列出了 24 个核心方法。有关监听器、版本辅助函数以及每个方法的完整规范,请参阅 GitHub 仓库.
监听事件
addListener 会返回一个句柄。调用 handle.remove() 在屏幕卸载时,或者调用 CapacitorFile.removeAllListeners() 以清除所有监听器。
完整参考文档
继续阅读 使用 @capgo/capacitor-file
如果你正在使用 使用 @capgo/capacitor-file 要规划存储和文件处理,请将其与 @capgo/capacitor-file 有关 @capgo/capacitor-file 的实现细节, 快速入门 有关“入门指南”中的实现细节, @capgo/capacitor-data-storage-sqlite 关于 @capgo/capacitor-data-storage-sqlite 中的实现细节, 使用 @capgo/capacitor-data-storage-sqlite 有关使用 @capgo/capacitor-data-storage-sqlite 的原生能力,以及 @capgo/capacitor-uploader 了解 @capgo/capacitor-uploader. 的实现细节