文件 4.0.2

文件 4.0.2

测试已测试
Lang语言 SwiftSwift
许可证 MIT
发布最新发布2019 年 9 月
SPM支持 SPM

John Sundell 维护。



文件 4.0.2

“Files”

BuddyBuild CocoaPods Carthage Swift Package Manager Twitter: @johnsundell

欢迎使用 Files,这是一个紧凑的库,提供了一种更好的处理 Swift 中的 文件文件夹 的方法。它主要针对 Swift 脚本和工具,但也可在需要访问文件系统的应用程序中嵌入。它实际上是在 Foundation 提供的 FileManager API 上的一个薄包装。

特性

  • 用于访问、读取和写入文件 & 文件夹的现代化、面向对象的 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(string: "{\"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 中的应用程序。

使用 Swift 包管理器(推荐)

要安装 Files 并在由 Swift 包管理器供电的工具、脚本或服务器端应用程序中使用,请在您的 Package.swift 文件中将 Files 添加为依赖项。更多详细信息,请参阅Swift 包管理器文档

.package(url: "https://github.com/JohnSundell/Files", from: "4.0.0")

使用 CocoaPods 或 Carthage

有关如何使用这些工具添加依赖项的说明,请参阅 CocoaPodsCarthage 的官方文档。

作为文件

由于 Files 所有功能都实现在一个单独的文件中,因此您可以通过简单地将文件 Files.swift 拖动到 Xcode 项目中,轻松地在任何项目中使用它。

背景

那么,为什么会有这个呢?由于我已经将大部分构建工具和其他脚本从类似 Bash、Ruby 和 Python 这样的语言迁移到了 Swift,我发现自己缺少一种方便处理文件系统的简单方法。当然,FileManager 提供了一种相当不错的 API,但是由于其基于字符串的本质,它的使用相对麻烦,这使得简单的脚本开始变得相当复杂,比如移动或重命名文件。

所以我制作了 Files,以便我可以快速而表达性地处理文件和文件夹。既然我喜欢开源,我想 - 为什么不将它包装起来并与社区分享呢? :)

有疑问或反馈?

请随意提交一个问题,或在@johnsundell on Twitter上找到我。