检查路径是否是Swift2中的目录?

时间:2016-05-14 10:29:14

标签: swift directory swift2 nsfilemanager

如果希望获得类似于Bash -d if条件的功能。

我知道如何测试文件是否存在fileExistsAtPath(),这会返回一个bool" true"如果文件存在且" false"如果它没有(假设path是一个包含文件路径的字符串):

if NSFileManager.fileExistsAtPath(path) {
    print("File exists")
} else {
    print("File does not exist")
}

但是,我想检查path中指定的路径是否是一个目录,类似于以下bash代码:

if [ -d "$path" ]; then
    echo "$path is a directory"
elif [ -f "$path" ]; then
    # this is effectively the same as fileExistsAtPath()
    echo "$path is a file"
fi

这是否可行,如果可以,应该如何执行?

1 个答案:

答案 0 :(得分:21)

您可以使用fileExistsAtPath的重载来告诉您path表示目录:

var isDir : ObjCBool = false
let path = ...
let fileManager = FileManager.default
if fileManager.fileExists(atPath: path, isDirectory:&isDir) {
    print(isDir.boolValue ? "Directory exists" : "File exists")
} else {
    print("File does not exist")
}