#swift3 #nsfilemanager
#swift3 #nsfilemanager
Вопрос:
Привет, вот commonPath
мой путь к каталогу документов. Я должен удалить .DS_Store
файл в своем каталоге.
В swift 2 я использовал приведенный ниже код, он работает нормально
var imageNames = try! NSFileManager.defaultManager().contentsOfDirectoryAtPath(commonPath)
if imageNames.count > 0
{
imageNames.contains(".DS_Store") ? imageNames.removeAtIndex(imageNames.indexOf(".DS_Store")!) : imageNames[0]
}
Но я не могу использовать тот же код в swift 3.0
Xcode автоматически преобразует приведенный выше код в
imageNames.contains(".DS_Store") ? imageNames.remove(at: imageNames.index(of: ".DS_Store")!) : imageNames[0]
Он показывает ошибку.
Кто-нибудь может мне помочь?
Заранее спасибо.
Ответ №1:
Получите путь к документу, используя NSSearchPathForDirectoriesInDomains
затем выполните следующие действия. Надеюсь, это сработает.
let documentPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as NSString
let commonPath = documentPath.appendingPathComponent(reportImageFolder)
let outPath = commonPath "/"
arrImages = try FileManager.default.contentsOfDirectory(atPath: outPath as String)
if arrImages.count > 0
{
arrImages.contains(".DS_Store") ? arrImages.remove(at: arrImages.index(of: ".DS_Store")!) : arrImages[0]
}
Ответ №2:
Что-то подобное должно работать в swift 3:
var imageNames = try! FileManager.default.contentsOfDirectory(atPath: commonPath)
if imageNames.count > 0 {
if imageNames.contains(".DS_Store") {
imageNames.remove(at: imageNames.index(of: ".DS_Store")!)
}
}
// do something with imageNames[0]