Как получить имя файла из пути к файлу в swift
Как получить имя файла из данной строки пути к файлу?
например, если у меня есть строка пути к файлу как
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
и я хотел бы получить обратный результат как
trim.D152E6EA-D19D-4E3F-8110-6EACB2833CE3.MOV
Спасибо за вашу помощь.
6 ответов:
С
NSString* theFileName = [string lastPathComponent]
Свифт
let theFileName = (string as NSString).lastPathComponent
SWIFT 3.x или SWIFT 4: Самый короткий и чистый способ сделать это ниже. В этом примере
url
переменная типаURL
таким образом, мы можем иметь читабельный человекаString
результат полного имени файла с расширением likeMy file name.txt
не нравитсяMy%20file%20name.txt
// Result like: My file name.txt let fileName = url.lastPathComponent
Если вы хотите получить текущее имя файла, например, для целей ведения журнала, я использую это.
Swift 4
URL(fileURLWithPath: #file).lastPathComponent
попробуй такое
let filename: String = "your file name" let pathExtention = filename.pathExtension let pathPrefix = filename.stringByDeletingPathExtension
надеюсь, что это помогает.
создает уникальный url-адрес формы "имя файла", включая две предыдущие папки
func createFileNameFromURL (colorUrl: URL) -> String { var arrayFolders = colorUrl.pathComponents // -3 because last element from url is "file name" and 2 previous are folders on server let indx = arrayFolders.count - 3 var fileName = "" switch indx{ case 0...: fileName = arrayFolders[indx] + arrayFolders[indx+1] + arrayFolders[indx+2] case -1: fileName = arrayFolders[indx+1] + arrayFolders[indx+2] case -2: fileName = arrayFolders[indx+2] default: break } return fileName
}