URL 与文件路径
使用基于 URL 的 API 定位文件。
URL 与文件路径 是 CoddyKit 上的免费 Swift Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Swift Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Swift Academy 课程共包含 4 节课。
网址和文件路径
在 Apple 平台上,文件使用 URL 值而不是裸字符串来表示。文件网址指向文件系统中的某个位置。
文件网址
使用 URL(fileURLWithPath:) 创建文件网址。它会将网址标记为本地文件,而不是网络地址。
import Foundation
let url = URL(fileURLWithPath: "/tmp/data.txt")
print(url.path)
print(url.isFileURL)添加路径组成部分
appendingPathComponent(_:) 可以安全地构造子路径,并替您插入分隔符。
import Foundation
let base = URL(fileURLWithPath: "/tmp")
let file = base.appendingPathComponent("notes.txt")
print(file.path)路径扩展名
使用 appendingPathExtension(_:) 添加文件类型,并使用 pathExtension 读取该类型。
import Foundation
let url = URL(fileURLWithPath: "/tmp/report")
.appendingPathExtension("pdf")
print(url.lastPathComponent)
print(url.pathExtension)最后一个路径组成部分
lastPathComponent 会返回文件或文件夹名称;deletingLastPathComponent() 会向上移动到父目录。
import Foundation
let url = URL(fileURLWithPath: "/Users/me/file.txt")
print(url.lastPathComponent)
print(url.deletingLastPathComponent().path)删除扩展名
deletingPathExtension() 会去除类型,适合用于生成相关文件名。
import Foundation
let url = URL(fileURLWithPath: "/tmp/image.png")
let base = url.deletingPathExtension()
print(base.lastPathComponent)现代 URL 访问器
较新的 API 使用 url.appending(path:) 和 url.path();两者都会生成等效的文件网址。
import Foundation
let base = URL(fileURLWithPath: "/tmp")
let child = base.appending(path: "logs/today.log")
print(child.path)URL 与字符串路径
当某个 API 需要字符串时,path 属性会将网址转换为普通字符串。在其他情况下,请优先使用网址。
import Foundation
let url = URL(fileURLWithPath: "/var/data")
let asString: String = url.path
print(asString)相对网址
您可以创建相对于某个基准的网址,这对于从已知根目录组合路径很有帮助。
import Foundation
let base = URL(fileURLWithPath: "/tmp/", isDirectory: true)
let rel = URL(fileURLWithPath: "sub/file.txt", relativeTo: base)
print(rel.absoluteURL.path)规范化路径
standardizedFileURL 会将 .. 和 . 等内容解析为整洁的规范路径。
import Foundation
let messy = URL(fileURLWithPath: "/tmp/a/../b/file.txt")
print(messy.standardizedFileURL.path)为什么使用网址而不是字符串
网址会编码路径是否为目录,处理分隔符,并与 FileManager 集成。相比之下,字符串路径更容易出错。
import Foundation
let dir = URL(fileURLWithPath: "/tmp/folder", isDirectory: true)
print("Has directory path: \(dir.hasDirectoryPath)")快速检查
哪个方法可以在文件网址上安全地构造子路径?
回顾
文件通过 URL 和 URL(fileURLWithPath:) 进行定位。您已经使用 appendingPathComponent 和 appendingPathExtension 构造路径,使用 lastPathComponent 和 deletingLastPathComponent 导航,并规范化了网址。下一步:读取和写入实际数据。
常见问题解答
「URL 与文件路径」课时是免费的吗?
是的 — 「URL 与文件路径」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Swift Academy 课程的其余内容,请升级到 CoddyKit PRO。 Swift Academy 课程共包含 4 节课。
「URL 与文件路径」这节课中我会学到什么?
使用基于 URL 的 API 定位文件。 你通过在浏览器中直接运行的动手代码来练习 Swift Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Swift Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Swift Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「URL 与文件路径」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Swift Academy 课中编写并运行代码吗?
能。每节 Swift Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。