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 de retour comme
trim.D152E6EA-D19D-4E3F-8110-6EACB2833CE3.MOV
Merci de votre aide.
URL
s, pas en tant queString
s ouNSString
sSWIFT 3.x ou SWIFT 4: le moyen le plus court et le plus propre de le faire est ci-dessous. Dans cet exemple, la
url
variable est le type deURL
de cette façon, nous pouvons avoir unString
résultat lisible par l'homme du nom complet du fichier avec l'extension commeMy file name.txt
et Pas commeMy%20file%20name.txt
la source
Si vous souhaitez obtenir le nom du fichier actuel, par exemple à des fins de journalisation, j'utilise ceci.
Swift 4
la source
init(fileURLWithPath path: __shared String, isDirectory: Bool)
pour éviter un accès supplémentaire au système de fichiers. À partir de la documentation: Cette fonction évite un accès supplémentaire au système de fichiers pour vérifier si l'URL du fichier est un répertoire. Vous devriez l'utiliser si vous connaissez déjà la réponse.Swift 2:
la source
lastPathComponent
un swiftString
(par opposition à un cast versNSString
).init(fileURLWithPath path: __shared String, isDirectory: Bool)
pour éviter un accès supplémentaire au système de fichiers. À partir de la documentation: Cette fonction évite un accès supplémentaire au système de fichiers pour vérifier si l'URL du fichier est un répertoire. Vous devriez l'utiliser si vous connaissez déjà la réponse.Essaye ça
Actualisé :
J'espère que ça aide.
la source
Le code ci-dessous fonctionne pour moi dans Swift 4.X
la source
Pour que cela fonctionne, votre URL doit être de type URL et non une chaîne, alors ne la convertissez pas en chaîne au préalable.
Vous pouvez copier et coller ce code directement dans l'aire de jeux pour voir comment cela fonctionne.
la source
Vous pouvez passer l'url dans fileUrl, comme je l'ai fait ci-dessous: -
// Ce dernier composant de chemin vous fournira le nom de fichier avec l'extension.
la source
Crée une URL de formulaire "nom de fichier" unique comprenant deux dossiers précédents
}
la source
Pour récupérer le nom de fichier sans son extension à partir d'une URL dans Swift> = 4.2:
la source