Como obter o nome do arquivo da string de caminho de arquivo fornecida?
Por exemplo, se eu tiver uma string de caminho de arquivo como
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
e eu gostaria de obter o resultado de retorno como
trim.D152E6EA-D19D-4E3F-8110-6EACB2833CE3.MOV
Obrigado pela ajuda.
URL
s, não comoString
s ouNSString
sSWIFT 3.x ou SWIFT 4: A maneira mais curta e limpa de fazer isso está abaixo. Neste exemplo, a
url
variável é do tipoURL
, desta forma podemos ter umString
resultado legível por humanos do nome completo do arquivo com extensão likeMy file name.txt
e Not likeMy%20file%20name.txt
fonte
Se você quiser obter o nome do arquivo atual, como para fins de registro, eu uso isso.
Swift 4
fonte
init(fileURLWithPath path: __shared String, isDirectory: Bool)
para evitar um acesso extra ao sistema de arquivos. Dos documentos: Esta função evita um acesso extra ao sistema de arquivos para verificar se o URL do arquivo é um diretório. Você deve usá-lo se já souber a resposta.Swift 2:
fonte
lastPathComponent
um swiftString
(ao invés de lançarNSString
).init(fileURLWithPath path: __shared String, isDirectory: Bool)
para evitar um acesso extra ao sistema de arquivos. Dos documentos: Esta função evita um acesso extra ao sistema de arquivos para verificar se o URL do arquivo é um diretório. Você deve usá-lo se já souber a resposta.Tente isto
Atualizada :
Espero que ajude.
fonte
O código abaixo está funcionando para mim no Swift 4.X
fonte
Para que isso funcione, sua url deve ser do tipo URL, não uma string, portanto, não a converta em uma string antes.
Você pode copiar e colar este código diretamente no playground para ver como funciona.
fonte
Você pode passar o url em fileUrl, como eu fiz abaixo: -
// Este último componente de caminho fornecerá o nome do arquivo com extensão.
fonte
Cria um URL de formulário de "nome de arquivo" exclusivo, incluindo duas pastas anteriores
}
fonte
Para recuperar o nome do arquivo sem sua extensão de um URL em Swift> = 4.2:
fonte