Что не так с моим кодом для получения имен файлов в папке с документами?
func listFilesFromDocumentsFolder() -> [NSString]?{
var theError = NSErrorPointer()
let dirs = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.AllDomainsMask, true) as? [String]
if dirs != nil {
let dir = dirs![0] as NSString
let fileList = NSFileManager.defaultManager().contentsOfDirectoryAtPath(dir, error: theError) as [NSString]
return fileList
}else{
return nil
}
}
Я думал, что правильно прочитал документы и я очень уверен в том, что находится в папке с документами, но "fileList" ничего не показывает? "dir" показывает путь к папке.
Ответы:
Это решение работает со Swift 4 (Xcode 9.2), а также со Swift 5 (Xcode 10.2.1+):
Вот многоразовое расширение FileManager, которое также позволяет пропускать или включать скрытые файлы в результаты:
источник
Swift 5
источник
.
префикс точки и.cloud
суффикс. попробуйте,let icloudFiles = directoryContents.filter{ $0.pathExtension == "icloud" }
он должен показать файлы, которые не загруженыБолее короткий синтаксис для SWIFT 3
Пример использования:
Протестировано на xCode 8.2.3 для iPhone 7 с iOS 10.2 и iPad с iOS 9.3
источник
Apple заявляет о
NSSearchPathForDirectoriesInDomains(_:_:_:)
:В Swift 5
FileManager
есть метод, называемыйcontentsOfDirectory(at:includingPropertiesForKeys:options:)
.contentsOfDirectory(at:includingPropertiesForKeys:options:)
имеет следующее объявление:Поэтому, для того , чтобы восстановить адреса файлов , содержащихся в каталоге документов, вы можете использовать следующий фрагмент кода , который использует
FileManager
«surls(for:in:)
иcontentsOfDirectory(at:includingPropertiesForKeys:options:)
методов:В качестве примера приведенная
UIViewController
ниже реализация показывает, как сохранить файл из пакета приложений в каталог документов и как получить URL-адреса файлов, сохраненных в каталоге документов:источник
Этот код распечатывает все каталоги и файлы в моем каталоге документов:
Некоторая модификация вашей функции:
Что вызывает:
источник
Совместимость с Swift 2.0
ИЛИ
источник
Простое и динамичное решение (Swift 5):
источник