欢迎使用 Files,这是一个紧凑的库,它提供了一种更友好的方式来处理 Swift 中的文件和文件夹。它主要面向 Swift 脚本和工具,但也可以嵌入到需要访问文件系统的应用程序中。它本质上是 Foundation
提供的 FileManager
API 的一个轻量级封装。
do, try, catch
错误处理。迭代文件夹中包含的文件
for file in try Folder(path: "MyFolder").files {
print(file.name)
}
重命名文件夹中包含的所有文件
try Folder(path: "MyFolder").files.enumerated().forEach { (index, file) in
try file.rename(to: file.nameWithoutExtension + "\(index)")
}
递归地迭代树中的所有文件夹
Folder.home.subfolders.recursive.forEach { folder in
print("Name : \(folder.name), parent: \(folder.parent)")
}
创建、写入和删除文件和文件夹
let folder = try Folder(path: "/users/john/folder")
let file = try folder.createFile(named: "file.json")
try file.write("{\"hello\": \"world\"}")
try file.delete()
try folder.delete()
将文件夹中的所有文件移动到另一个文件夹
let originFolder = try Folder(path: "/users/john/folderA")
let targetFolder = try Folder(path: "/users/john/folderB")
try originFolder.files.move(to: targetFolder)
轻松访问系统文件夹
Folder.current
Folder.root
Folder.library
Folder.temporary
Folder.home
Folder.documents
Files 可以很容易地用于 Swift 脚本、命令行工具或 iOS、macOS、tvOS 或 Linux 的应用程序中。
要安装 Files 以用于 Swift Package Manager 驱动的工具、脚本或服务器端应用程序,请将 Files 作为依赖项添加到您的 Package.swift
文件中。有关更多信息,请参阅 Swift Package Manager 文档。
.package(url: "https://github.com/JohnSundell/Files", from: "4.0.0")
有关如何使用这些工具添加依赖项的说明,请参阅 CocoaPods 或 Carthage 的文档。
由于 Files 的所有实现都在单个文件中,因此您可以通过简单地将 Files.swift
文件拖到您的 Xcode 项目中,轻松地在任何项目中使用它。
那么,为什么要制作这个库呢?随着我将大部分构建工具和其他脚本从 Bash、Ruby 和 Python 等语言迁移到 Swift,我发现自己缺少一种处理文件系统的简单方法。当然,FileManager
有一个非常不错的 API,但由于其基于字符串的性质,使用起来可能相当麻烦,这使得移动或重命名文件的简单脚本很快变得非常复杂。
所以,我制作了 Files,使我能够以一种富有表现力的方式快速处理文件和文件夹。而且,因为我热爱开源,所以我想 - 为什么不把它打包起来与社区分享呢?:)
欢迎 提出问题,或在 Twitter 上 @johnsundell 找到我。