SimplePath
SimplePath是一个Swift中用于处理文件路径的库。它从诸如Go、PHP、C和Perl等其他语言的路径库以及Node.js这样的运行时中大量借鉴。
该库并不试图隐藏文件路径实际上是字符串的事实。大多数函数都接受字符串作为参数并返回字符串。
函数
Path.join([components])
通过连接组件构建路径字符串,在必要时添加目录分隔符。
let path = Path.join([
"/var/www",
"website",
"robots.txt"
])
// path -> /var/www/website/robots.txt
Path.split(path)
返回给定路径的所有组件。
let components = Path.split("/storage/images/0001.jpg")
// components -> [
// "/",
// "storage",
// "images",
// "0001.jpg"
// ]
Path.basename(path)
返回路径的最后一个部分。通常是文件名。
let base = Path.basename("assets/images/logo.png")
// base -> "logo.png"
let base = Path.basename("assets/images/logo.png", ext: "png")
// base -> "logo"
Path.dirname(path)
返回路径的父目录。
let dir = Path.dirname("/var/data/map.bin")
// dir -> "/var/data"
Path.extname(path)
获取路径的扩展名。
let ext = Path.extname("assets/sfx/drumroll.wav")
// ext -> "wav"
let ext = Path.extname("assets/sfx")
// ext -> nil
Path.format([elements])
根据路径的元素名称构建路径。
let path = Path.format([
.dir: "assets/icons",
.base: "settings.png"
])
// path -> "assets/icons/settings.png"
let path = Path.format([
.dir: "assets/vector",
.base: "logo"
.ext: "svg"
])
// path -> "assets/vector/logo.svg"
Path.isAbsolute(path) 和 Path.isRelative(path)
可以用于检查路径是否为绝对路径或相对路径。
Path.isAbsolute("/var/logs/test.log") // -> true
Path.isRelative("cache/images/1.bin") // -> true
Path.exists(path)
如果路径存在,则返回 true。
Path.exists("/path/to/existing/file.txt") // -> true
Path.isFile(path)
如果路径存在且是常规文件,则返回 true。
Path.isFile("/path/to/existing/file.txt") // -> true
Path.isDir(path)
如果路径存在且是目录,则返回 true。
Path.isDir("/path/to/existing/dir") // -> true
扩展
如果您认为 SimplePath 缺少了重要的功能,我建议您遵循以下步骤
- 将这样的功能作为 扩展 实现。
- 如果您认为这个功能非常可重用,请不要犹豫,通过打开 pull request 将它贡献回项目。
许可协议
此库受 MIT 许可协议 许可。