在iOS应用程序的文件夹中打印所有文件名

我在我的iOS应用程序中有一个包含4个子文件夹的文件夹,每个文件夹都包含大约20个文件。 我想能够遍历每个文件夹并打印出文件名。 我不知道如何去做这件事。

这是我所尝试的:

let docsPath = NSBundle.mainBundle().resourcePath! + "/Samples"; let fileManager = NSFileManager.defaultManager() var error: NSError? let docsArray = fileManager.contentsOfDirectoryAtPath(docsPath, error:&error) println(docsArray) 

这打印出零。 我希望它打印出每个文件名。 我如何做到这一点?

这里有两个问题:

1)

检查您的内置应用程序,看看“样本”是否真的在构build的二进制文件中结束。 从“操作无法完成”的错误,我认为你不是复制“样本”到编译的应用程序包,或至less到你期待的地方。

2)

你正在做的电话会给你的文件夹的内容,但不是你想要列出的子文件夹的内容。

使用NSDirectoryEnumerator来获取该文件夹和子文件夹的内容。 这是一个相关的问题 ,可能会给你一个方向。

你可以使用NSFileManager的枚举器,如果你想获得所有的文件,包括子目录。

简单的例子:

 if let enumerator = fileManager.enumeratorAtURL(docsPath, includingPropertiesForKeys: nil, options: nil, errorHandler: nil) { while let url = enumerator.nextObject() as? NSURL { println(url) } } 

没关系,我明白了:

  var docsPath = NSBundle.mainBundle().resourcePath! + "/Snare"; let fileManager = NSFileManager.defaultManager() var error: NSError? let docsArray = fileManager.contentsOfDirectoryAtPath(docsPath, error:&error) //println(error!.localizedDescription) println(docsArray) for filename in docsArray! { let subfolderPath = docsPath + "/"+(filename as! String) println(docsPath) let subarray = fileManager.contentsOfDirectoryAtPath(subfolderPath, error: &error) println(subarray) }