Как получить имя файла из пути к файлу в 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 58

6 ответов:

С

NSString* theFileName = [string lastPathComponent]

Свифт

let theFileName = (string as NSString).lastPathComponent

Swift 2:

var file_name = NSURL(fileURLWithPath: path_to_file).lastPathComponent!

SWIFT 3.x или SWIFT 4: Самый короткий и чистый способ сделать это ниже. В этом примере url переменная типа URL таким образом, мы можем иметь читабельный человека String результат полного имени файла с расширением like My 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

}