2016-05-14 25 views
9

Se si desidera ottenere una funzionalità simile a quella della condizione di Bash if.Verifica se il percorso è una directory in Swift2?

Sono a conoscenza di come verificare se esiste un file con fileExistsAtPath(), che restituisce un valore bool "true" se il file esiste e "false" in caso contrario (supponendo che path sia una stringa contenente il percorso del file):

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

Tuttavia, vorrei verificare se il percorso specificato in path è una directory, simile al bash seguente codice:

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 

questo è possibile, e se sì, come dovrebbe si esibirà Ed?

+3

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

+0

Sono d'accordo, le scuse. L'ho contrassegnato come duplicato. – perhapsmaybeharry

risposta

18

È possibile utilizzare un sovraccarico di fileExistsAtPath che ti dice che path rappresenta una directory:

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

come mai è la soluzione che dobbiamo usare in Swift. Non c'è davvero un metodo rapido? –

+0

@ R.P.Carson Ho aggiornato la risposta per la nuova versione di Swift. – dasblinkenlight