2016-05-14 28 views
9

Wenn ähnliche Funktionalität wie Bash -dif Bedingung erhalten.Überprüfen Sie, ob Pfad ein Verzeichnis in Swift2 ist?

Ich bin mir bewusst, wie Sie testen, ob eine Datei mit fileExistsAtPath() existiert, die eine Bool „true“ zurück, wenn die Datei vorhanden ist und „false“, wenn sie nicht (vorausgesetzt path ein String ist, den Pfad zu der Datei enthält,):

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

Allerdings würde ich, wenn der Pfad in path angegeben zu überprüfen, wie ein Verzeichnis, ähnlich den folgenden bash-Code ist:

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 

ist dies möglich, und wenn ja, wie sollte es wird durchgeführt ed?

+3

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

+0

Ich entschuldige mich einverstanden. Ich habe dies als Duplikat markiert. – perhapsmaybeharry

Antwort

18

können Sie eine Überlastung von fileExistsAtPath verwenden, die Ihnen sagt, dass path ein Verzeichnis darstellt:

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

Wie auf der Erde ist die Lösung, die wir in Swift verwenden müssen. Es gibt wirklich keine schnelle Methode? –

+0

@ R.P.Carson Ich aktualisierte die Antwort für die neue Version von Swift. – dasblinkenlight

Verwandte Themen