ios URL-адрес SDK имя файла, удалить специальный URL-адрес аддона "\" - PullRequest
0 голосов
/ 16 апреля 2020

In iOS sdk (swift). Допустим, у меня есть три файла: «mary'sCat.mp3», «mary \ s.mp3», «mary \\ s.mp3» (специальный символ \ является частью реального имени файла). Когда я использую приведенный ниже код для получите URL

FileManager.default.contentsOfDirectory(at: documentDir, includingPropertiesForKeys: nil)

и используйте приведенный ниже код для получения имени файла

fileUrl.standardizedFileURL.lastPathComponent

У меня будет "mary \ 'sCat.mp3", "mary \\ s.mp3", "mary \\\\ s.mp3" Итак ... есть ли способ, которым я могу удалить специальные символы системных надстроек \ правильным образом? чтобы я мог вернуться к исходному имени файла "mary'sCat.mp3", "mary \ s.mp3", "mary \\ s.mp3"? Я заметил, что при использовании окна вывода XCode вы не увидите специальный символ аддона, но когда вы действительно увидите его в режиме отладки, вы увидите специальный символ аддона. Это кошмар, когда вы сравниваете строки, как показано ниже

let mediaUrl_filename = "mary\\s.mp3" \\<-- this value from url
let db_filename = "mary\s.mp3" \\ <-- this value from sqlite
if mediaUrl_filename == db_filename {
  print("It is equal")
}

Так есть ли способ решить эту проблему?

1 Ответ

0 голосов
/ 16 апреля 2020

На самом деле '\' используется как escape-последовательность в объектах String, поэтому при сравнении имени файла, если имя файла 'mary \ s.mp3', вы должны будете написать так

if mediaUrl_filename == "mary\\s.mp3"{
  print("It is equal")
}

I предлагаем вам заменить символ '\' на другой символ, такой как '_' в имени файла, чтобы игнорировать подобные ошибки.

...