Scripting 应用中的 FileManager 类提供了一个接口,用于与 iOS 文件系统交互。它包含用于管理文件和目录、检查 iCloud 状态、读取/写入文件内容以及处理压缩文件的方法。以下是每个功能的详细使用指南。
FileManager 类使用了以下类型定义:
'utf-8'、'ascii' 和 'latin1'。要检查 iCloud 功能是否可用以及管理存储于 iCloud 中的文件,请使用以下方法:
isiCloudEnabled: boolean指示是否启用了 iCloud 功能。在访问 iCloud 路径前,请确保已授权启用 iCloud。
iCloudDocumentsDirectory: stringiCloud Documents 目录的路径。必须启用 iCloud 功能后才能访问。
isFileStoredIniCloud(filePath: string): boolean检查某个文件是否设置为存储在 iCloud 中。
isiCloudFileDownloaded(filePath: string): boolean检查某个 iCloud 文件是否已下载到本地。
downloadFileFromiCloud(filePath: string): Promise<boolean>下载一个 iCloud 文件到本地。
getShareUrlOfiCloudFile(path: string, expiration?: DurationInMilliseconds): string为一个 iCloud 文件生成可分享的 URL,用户可以通过链接下载该文件。请使用 try-catch 来处理可能失败的情况。
iCloudDocumentsDirectory 中。path: iCloud 文件路径,需以 FileManager.iCloudDocumentsDirectory 为前缀。expiration: 可选,设置链接的过期时间(毫秒为单位)。appGroupDocumentsDirectory: App Group 的 Documents 目录路径。Widget 可访问,但 Files 应用不可见。documentsDirectory: 通用 Documents 目录路径,可通过 Files 应用访问。temporaryDirectory: 临时目录路径,用于存储临时数据。scriptsDirectory: 脚本存储目录路径。createDirectory(path: string, recursive?: boolean): Promise<void>在指定路径创建目录。如果 recursive 为 true,则会自动创建不存在的父目录。
createLink(path: string, target: string): Promise<void>创建从 path 到 target 的符号链接。
readAsString(path: string, encoding?: Encoding): Promise<string>以字符串形式读取文件内容,支持指定编码格式。
readAsBytes(path: string): Promise<Uint8Array>以字节数组 (Uint8Array) 形式读取文件内容。
readAsData(path: string): Promise<Data>以 Data 对象形式读取文件内容。
writeAsString(path: string, contents: string, encoding?: Encoding): Promise<void>将字符串写入指定路径的文件中,支持指定编码。
writeAsBytes(path: string, data: Uint8Array): Promise<void>将字节数组写入文件。
writeAsData(path: string, data: Data): Promise<void>将 Data 数据写入文件。
appendText(path: string, text: string, encoding?: Encoding): Promise<void>将文本追加到指定路径的文件末尾。如果文件或其父目录不存在,将自动创建。
appendTextSync(path: string, text: string, encoding?: Encoding): void同步版本的 appendText,适用于短小、可容忍阻塞的操作。
appendData(path: string, data: Data): Promise<void>将二进制 Data 追加到文件末尾。如果文件或目录不存在,将自动创建。
appendDataSync(path: string, data: Data): void同步版本的 appendData。
stat(path: string): Promise<FileStat>获取指定文件或目录的元数据信息。
mimeType(path: string): string获取文件的 MIME 类型。
destinationOfSymbolicLink(path: string): string | null获取符号链接的目标路径。
rename(path: string, newPath: string): Promise<void>移动或重命名文件/目录。
remove(path: string): Promise<void>删除文件或目录(若是目录,将连同内部内容一并删除)。
zip(srcPath: string, destPath: string, shouldKeepParent?: boolean): Promise<void>将指定路径下的文件或目录压缩为 zip 文件。shouldKeepParent 决定是否保留顶层目录。
unzip(srcPath: string, destPath: string): Promise<void>解压 zip 文件的内容到目标路径。
getAllFileBookmarks(): Array<{name: string; path: string}>获取所有文件书签。书签可用于在脚本中保存并稍后访问指定文件或文件夹。它们可以在 File Bookmarks 工具中创建,也可以通过 Shortcuts 或分享扩展自动生成。
bookmarkExists(name: string): boolean检查是否存在指定名称的文件书签。
bookmarkedPath(name: string): string | null根据名称获取书签文件/文件夹的路径;如果不存在对应书签,则返回 null。