2016-05-14 2 views
9

Если хотите получить функциональность, аналогичную функции Bash's -dif.Проверьте, является ли путь каталогом в Swift2?

Мне известно, как проверить, существует ли файл с 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 

возможно ли это, и если да, то как следует это должно быть выполнено ред?

+3

http://stackoverflow.com/a/24696209/1187415 –

+0

Я согласен, извиняться. Я отметил это как дубликат. – perhapsmaybeharry

ответ

18

Вы можете использовать перегрузку fileExistsAtPath, который говорит вам, что path представляет каталог:

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

как на самом деле это решение, которое мы должны использовать в Swift. Там действительно не быстрый метод? –

+0

@ R.P.Carson Я обновил ответ для новой версии Swift. – dasblinkenlight

Смежные вопросы