Как удалить .DS_Store в swift3

#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]