Ответ 1
Цель C
NSString* theFileName = [string lastPathComponent]
Swift
let theFileName = (string as NSString).lastPathComponent
Как получить имя файла из указанной строки пути файла?
Например, если у меня есть строка пути к файлу как
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
Благодарим вас за помощь.
Цель C
NSString* theFileName = [string lastPathComponent]
Swift
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
полного имени файла с расширением типа 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
Обновлено:
extension String {
var fileURL: URL {
return URL(fileURLWithPath: self)
}
var pathExtension: String {
return fileURL.pathExtension
}
var lastPathComponent: String {
return fileURL.lastPathComponent
}
}
Надеюсь, поможет.
Ниже код работает для меня в Swift 4.X
let filename = (self.pdfURL as NSString).lastPathComponent // pdfURL is your file url
let fileExtention = (filename as NSString).pathExtension // get your file extension
let pathPrefix = (filename as NSString).deletingPathExtension // File name without extension
self.lblFileName.text = pathPrefix // Print name on Label
Надеюсь, у вас все получится, удачного кодирования :)
Создает уникальный 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
}
Чтобы получить имя файла без его расширения из URL в Swift> = 4.2:
let urlWithoutFileExtension: URL = originalFileUrl.deletingPathExtension()
let fileNameWithoutExtension: String = urlWithoutFileExtension.lastPathComponent