ios - 从文档目录的子文件夹中获取文件列表 swift ios

标签 ios swift directory document

我正在使用此代码从文档目录中获取 PDF 文件列表。 现在,如果该文件夹存在,我想从文档目录中名为“MyFiles”的文件夹中查找 PDF 文件列表。

我该怎么做?

func listFilesFromDocumentsFolder() -> [String]
{
    var theError = NSErrorPointer()
    let dirs = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.AllDomainsMask, true) as? [String]

    if dirs != nil {
        let dir = dirs![0]
        let fileList = NSFileManager.defaultManager().contentsOfDirectoryAtPath(dir, error: theError) as! [String]
        var count = fileList.count
        for var i = 0; i < count; i++
        {
            var filePath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true).first as! String
            filePath = filePath.stringByAppendingPathComponent(fileList[i])
            let properties = [NSURLLocalizedNameKey, NSURLCreationDateKey, NSURLContentModificationDateKey, NSURLLocalizedTypeDescriptionKey]
            var attr = NSFileManager.defaultManager().attributesOfItemAtPath(filePath, error: NSErrorPointer())
        }
        return fileList.filter{ $0.pathExtension == "pdf" }.map{ $0.lastPathComponent } as [String]
    }else{
        let fileList = [""]
        return fileList
    }
}

提前致谢..

最佳答案

我认为这可以通过对实现了 SequenceType 协议(protocol)的 NSFileManager 进行扩展来实现。但是您可以轻松地将代码转换为使用 while 循环:

// path to documents directory
let documentDirectoryPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true).first as! String
let myFilesPath = documentDirectoryPath.stringByAppendingPathComponent("/MyFiles")
let files = filemanager.enumeratorAtPath(myFilesPath)
while let file = files?.nextObject() {
     println(file)
}

关于ios - 从文档目录的子文件夹中获取文件列表 swift ios,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35891345/

相关文章:

c - 列出目录文件问题

powershell - 如何在 PowerShell 的 Get-ChildItem -Exclude cmdlet 中对目录使用通配符

ios - 使用 Objective-C 和 Swift 中的 Parse 在设备离线时执行方法

ios - Apple Mach Linker 未找到,缺少依赖 React

ios - 在 uibezierpath swift 上裁剪图像

c# - 在 ASP.Net MVC 4.0 中获取 View 文件夹中的文件

iphone - 如何确保项目中的所有 UIViewController 对象只被创建一次?

ios - 使用 RxSwift 将多个 UITextField 绑定(bind)到一个类 Prop

ios - 无法获取 didSelectRowAtIndexPath 以注册点击

ios - 通过 Storyboard将 UIPageControl 添加到 UIPageViewController