Comment obtenir le nom de fichier à partir de la chaîne de chemin de fichier donnée?
Par exemple, si j'ai une chaîne de chemin de fichier comme
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
et je voudrais obtenir le résultat en tant que
trim.D152E6EA-D19D-4E3F-8110-6EACB2833CE3.MOV
Merci de votre aide.
Objectif C
NSString* theFileName = [string lastPathComponent]
rapide
let theFileName = (string as NSString).lastPathComponent
Swift 3.x ou Swift 4: Le moyen le plus court et le plus propre de procéder est le suivant. Dans cet exemple, url
variable est de type URL
de cette manière, nous pouvons avoir un résultat lisible par un humain String
du nom de fichier complet avec une extension telle que My file name.txt
et Not like My%20file%20name.txt
// Result like: My file name.txt
let fileName = url.lastPathComponent
Swift 2:
var file_name = NSURL(fileURLWithPath: path_to_file).lastPathComponent!
Si vous souhaitez obtenir le nom du fichier actuel, par exemple à des fins de journalisation, je l’utilise.
Swift 4
URL(fileURLWithPath: #file).lastPathComponent
Essaye ça
let filename: String = "your file name"
let pathExtention = filename.pathExtension
let pathPrefix = filename.stringByDeletingPathExtension
Mise à jour:
extension String {
var fileURL: URL {
return URL(fileURLWithPath: self)
}
var pathExtension: String {
return fileURL.pathExtension
}
var lastPathComponent: String {
return fileURL.lastPathComponent
}
}
J'espère que ça aide.
Le code ci-dessous fonctionne pour moi dans 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
J'espère que cela fonctionne pour vous les gars, Happy coding:)
Crée une URL de formulaire "nom de fichier" unique comprenant deux dossiers précédents
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
}
Pour récupérer le nom de fichier sans son extension à partir d'une URL dans Swift> = 4.2:
let urlWithoutFileExtension: URL = originalFileUrl.deletingPathExtension()
let fileNameWithoutExtension: String = urlWithoutFileExtension.lastPathComponent