Jak uzyskać nazwę pliku z podanego ciągu ścieżki pliku?
Na przykład, jeśli mam ciąg ścieżki pliku jako
file:///Users/DeveloperTeam/Library/Developer/CoreSimulator/Devices/F33222DF-D8F0-448B-A127-C5B03C64D0DC/data/Containers/Data/Application/5D0A6264-6007-4E69-A63B-D77868EA1807/tmp/trim.D152E6EA-D19D-4E3F-8110-6EACB2833CE3.MOV
i chciałbym otrzymać wynik jako
trim.D152E6EA-D19D-4E3F-8110-6EACB2833CE3.MOV
Dziękuję za pomoc.
URL
s, a nieString
s lubNSString
sSWIFT 3.x lub SWIFT 4: Najkrótszy i najczystszy sposób, aby to zrobić, znajduje się poniżej. W tym przykładzie
url
zmienna jest typemURL
w ten sposób możemy otrzymać czytelny dla człowiekaString
wynik pełnej nazwy pliku z rozszerzeniem jakMy file name.txt
i Nie podobaMy%20file%20name.txt
źródło
Jeśli chcesz uzyskać aktualną nazwę pliku, na przykład do celów logowania, używam tego.
Szybki 4
źródło
init(fileURLWithPath path: __shared String, isDirectory: Bool)
aby uniknąć dodatkowego dostępu do systemu plików. Z dokumentacji: Ta funkcja pozwala uniknąć dodatkowego dostępu do systemu plików w celu sprawdzenia, czy adres URL pliku jest katalogiem. Powinieneś go użyć, jeśli znasz już odpowiedź.Swift 2:
źródło
lastPathComponent
swiftString
(w przeciwieństwie do rzutowaniaNSString
).init(fileURLWithPath path: __shared String, isDirectory: Bool)
aby uniknąć dodatkowego dostępu do systemu plików. Z dokumentacji: Ta funkcja pozwala uniknąć dodatkowego dostępu do systemu plików w celu sprawdzenia, czy adres URL pliku jest katalogiem. Powinieneś go użyć, jeśli znasz już odpowiedź.Spróbuj tego
Zaktualizowano:
Mam nadzieję, że to pomoże.
źródło
Poniższy kod działa dla mnie w Swift 4.X
źródło
Aby to zadziałało, twój adres URL musi być typu URL, a nie ciągiem, więc nie konwertuj go wcześniej na ciąg.
Możesz skopiować i wkleić ten kod bezpośrednio do placu zabaw, aby zobaczyć, jak to działa.
źródło
Możesz przekazać adres URL w fileUrl, tak jak zrobiłem poniżej: -
// Ten ostatni składnik ścieżki zapewni nazwę pliku z rozszerzeniem.
źródło
Tworzy unikalny adres URL „nazwy pliku” zawierający dwa poprzednie foldery
}
źródło
Aby pobrać nazwę pliku bez rozszerzenia z adresu URL w Swift> = 4.2:
źródło