web-dev-qa-db-fra.com

Comment obtenir le nom du fichier depuis le chemin du fichier dans swift

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.

79
Ralph

Objectif C

NSString* theFileName = [string lastPathComponent]

rapide

let theFileName = (string as NSString).lastPathComponent
135
Sujith Chandran

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
24
Trevor

Swift 2:

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

Si vous souhaitez obtenir le nom du fichier actuel, par exemple à des fins de journalisation, je l’utilise.

Swift 4

URL(fileURLWithPath: #file).lastPathComponent
22
Jose Ramirez

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.

9
Pradumna Patil

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:)

6
Ashu

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

}

1
Pvlub

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
0
Taiwosam