Rid*_*hah 4 directory document ios swift
我正在使用此代码从文档目录中获取 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
}
}
Run Code Online (Sandbox Code Playgroud)
提前致谢..
我认为这可能通过实现 NSFileManager 的扩展来实现 SequenceType 协议。但是您可以轻松地将代码转换为使用 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)
}
Run Code Online (Sandbox Code Playgroud)