Swift 文件系统操作:初学者基础指南

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

Swift 文件系统操作:初学者指南



文件系统操作是开发 iOS 和 macOS 应用程序时的关键任务之一。无论是保存用户数据、缓存图片还是导出文档,您都不可避免地需要与文件和文件夹交互。在本文中,我们将介绍 Swift 中用于文件系统操作的基本工具,包括 FileManager、目录路径、创建、读取、写入和删除文件。本教程面向初学者开发者,因此所有示例都将尽可能简单易懂。



基础:FileManager 和路径



Swift 中用于文件系统操作的主要类是 FileManager。它是对标准系统调用的封装,提供了管理文件和文件夹的便捷接口。最常用的是它的单例:



let fileManager = FileManager.default


由于 iOS 和 macOS 中的应用程序在沙盒环境中运行,您需要知道数据可以保存在哪里。应用程序可以访问的主要目录包括:



  • Documents — 用于用户文档和需要在应用启动之间保留的数据。
  • Caches — 用于临时文件,系统可能会删除这些文件以释放空间。
  • Temporary — 用于临时文件,这些文件在下次设备重启时会被保证删除。
  • Library/Application Support — 用于不应直接暴露给用户但需要保留的数据。


您可以使用 urls(for:in:) 方法获取所需目录的路径:



// 获取 Documents 文件夹路径let documentsURL = fileManager.urls(for: .documentDirectory, in: .userDomainMask).first!print("Documents path: \\(documentsURL.path)")

// 获取 Caches 文件夹路径let cachesURL = fileManager.urls(for: .cachesDirectory, in: .userDomainMask).first!print("Caches path: \\(cachesURL.path)")

// 获取临时文件夹路径let tempURL = fileManager.temporaryDirectoryprint("Temp path: \\(tempURL.path)")


请注意:该方法返回一个 URL 数组(以防存在多个路径),但对于用户目录,通常取第一个元素。在现代 Swift 中,推荐使用 URL 而不是字符串路径,因为这样更安全、更方便。



创建和写入文件



现在我们已经知道文件可以保存在哪里,接下来学习如何创建文件并向其中写入数据。对于文本数据,最简单的方法是使用 String 类的 write(to:atomically:encoding:) 方法:



// 创建 Documents 文件夹中的文件路径let fileURL = documentsURL.appendingPathComponent("myFile.txt")

// 要写入的文本let content = "你好,世界!这是我的第一个 Swift 文件。"

do { // 将字符串写入文件 try content.write(to: fileURL, atomically: true, encoding: .utf8) print("文件创建成功:\\(fileURL.path)")} catch { print("写入文件错误:\\(error.localizedDescription)")}


参数 atomically: true 表示数据会先写入一个临时文件,然后重命名为目标文件。这可以防止在发生故障时文件损坏。对于二进制数据(例如图片),可以使用 Data:



// 创建二进制数据(例如字节数组)let data = Data([0x48, 0x65, 0x6C, 0x6C, 0x6F]) // ASCII 中的 "Hello"

let binaryFileURL = documentsURL.appendingPathComponent("data.bin")

do { try data.write(to: binaryFileURL, options: .atomic) print("二进制文件已创建")} catch { print("错误:\\(error)")}


读取文件和

博客

书籍推荐