Xcode 使用Swift列出iTunes共享文件夹中的文件

Xcode 使用Swift列出iTunes共享文件夹中的文件,xcode,swift,ios8,xcode6,itunes,Xcode,Swift,Ios8,Xcode6,Itunes,我想使用Swift在“表视图”中列出iTunes共享文件夹中的所有文件。 我查了一下谷歌,没人谈论它,它看起来是一个不寻常的需求,所以如果有人能帮上忙的话,它会非常有用 编辑:我发现有三个链接在谈论它,但在Objective-C中,我没有这门语言的经验。如果有人理解这一点,这里是链接 基于本objective-C教程,我创建了三种方法:listFilesFromDocumentsFolder,它返回我在应用程序iTunes共享文件夹中的所有文档的名称列表;以及loadfilefromfor

我想使用Swift在“表视图”中列出iTunes共享文件夹中的所有文件。
我查了一下谷歌,没人谈论它,它看起来是一个不寻常的需求,所以如果有人能帮上忙的话,它会非常有用

编辑:我发现有三个链接在谈论它,但在Objective-C中,我没有这门语言的经验。如果有人理解这一点,这里是链接




基于本objective-C教程,我创建了三种方法:listFilesFromDocumentsFolder,它返回我在应用程序iTunes共享文件夹中的所有文档的名称列表;以及loadfilefromformdocumentsfolder,它加载给定文件名的url,并将url传递到handleDocumentOpenUrl,以便将文件加载到UIWebView。下面是三种方法。 您还可以从github下载项目:

列出文档文件夹中的文件

func listFilesFromDocumentsFolder() {
    var paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
    var documentsDirectory : String;
    documentsDirectory = paths[0] as String
    var fileManager: NSFileManager = NSFileManager()
    var fileList: NSArray = fileManager.contentsOfDirectoryAtPath(documentsDirectory, error: nil)!
    var filesStr: NSMutableString = NSMutableString(string: "Files in Documents folder \n")
    for s in fileList {
        filesStr.appendFormat("%@", s as String)
    }

    self.displayAlert(filesStr)
}
func loadFileFromDocumentsFolder(fileName: String) {
    var paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
    var documentsDirectory : String;
    documentsDirectory = paths[0] as String
    var filePath: String = documentsDirectory.stringByAppendingPathComponent(fileName);
    var fileUrl: NSURL = NSURL(fileURLWithPath: filePath);
    self.handleDocumentOpenURL(fileUrl)

}
从文档文件夹加载文件

func listFilesFromDocumentsFolder() {
    var paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
    var documentsDirectory : String;
    documentsDirectory = paths[0] as String
    var fileManager: NSFileManager = NSFileManager()
    var fileList: NSArray = fileManager.contentsOfDirectoryAtPath(documentsDirectory, error: nil)!
    var filesStr: NSMutableString = NSMutableString(string: "Files in Documents folder \n")
    for s in fileList {
        filesStr.appendFormat("%@", s as String)
    }

    self.displayAlert(filesStr)
}
func loadFileFromDocumentsFolder(fileName: String) {
    var paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
    var documentsDirectory : String;
    documentsDirectory = paths[0] as String
    var filePath: String = documentsDirectory.stringByAppendingPathComponent(fileName);
    var fileUrl: NSURL = NSURL(fileURLWithPath: filePath);
    self.handleDocumentOpenURL(fileUrl)

}
handleDocumentOpenUrl

func handleDocumentOpenURL(url: NSURL) {
    var requestObj = NSURLRequest(URL: url)
    webView.userInteractionEnabled = true
    webView.loadRequest(requestObj)
}

希望这能有所帮助。

嗨,谢谢你的回复,但没有任何效果。即使通过git克隆repo,我也犯了很多错误。它不能工作,我不能完全理解你的项目,因为没有故事板。嗨,VivienG,你有什么错误,因为我在提交代码之前在手机上测试了应用程序。还有,你使用的是什么版本的xcode?VivienG,你也可以将url添加到克隆中,这样我就可以查看它,看看问题出在哪里。我很抱歉,问题与xcode的版本有关。我使用xcode6beta6来构建应用程序。它似乎允许某些xcode 6.0.1还不允许的事情。一个例子是导航栏的错误,它抛出了一个错误,因为它将navigationController变量视为可选变量,所以我必须添加一个!打开它。我已经下载了xcode 6.0.1,并对github上的代码进行了必要的更改以修复它。请更新您的代码并重试。Thanks@VivienG,不客气。如果从实际设备而不是模拟器运行应用程序,则只能将文件添加到iTunes共享文件夹