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

9
我希望能够使用Swift在'表格视图'中列出我的iTunes共享文件夹中的所有文件。
我在谷歌上搜索了一下,但没有人谈论这个问题,看起来这是一个不常见的需求,所以如果有人能帮忙就太好了。

编辑:我找到了三个链接谈论这个问题,但是它们都是在Objective-C中,我对这门语言没有任何经验。如果有人理解这个问题,可以看看这些链接。

http://www.exampledb.com/objective-c-get-itunes-file-sharing-folder-files-with-full-path.htm
http://www.infragistics.com/community/blogs/stevez/archive/2013/10/14/ios-objective-c-working-with-files.aspx
http://www.raywenderlich.com/1948/itunes-tutorial-for-ios-how-to-integrate-itunes-file-sharing-with-your-ios-app

1个回答

10
根据这个Objective-C教程http://mobiforge.com/design-development/importing-exporting-documents-ios,我创建了三种方法:listFilesFromDocumentsFolder返回一个包含所有应用iTunes共享文件夹中文档名称的列表;loadFileFromDocumentsFolder加载给定文件名的url并将其传递给handleDocumentOpenUrl,以在UIWebView上加载文件。以下是这三种方法。
你也可以从Github下载该项目:https://github.com/Euniceadu/Load-Shared-Documents
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)
}

loadFileFromDocumentsFolder

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克隆存储库,我也遇到了很多错误。它无法工作,而且由于没有Storyboard,我无法完全理解您的项目。 - VivienG
1
你好VivienG,你遇到了什么错误?因为在提交代码之前我已经在我的手机上测试过这个应用程序。另外,你使用的Xcode版本是多少? - euniceadu
VivienG,你也可以添加克隆的URL,这样我就可以查看并了解问题所在。 - euniceadu
1
你好VivienG,非常抱歉,问题与xcode的版本有关。我使用的是xcode6beta6来构建应用程序。它似乎允许某些xcode 6.0.1尚不允许的事情。例如,导航栏出现错误,因为它将navigationController变量视为可选变量,所以我必须添加一个!来解包它。我已经下载了xcode 6.0.1并在github上进行了必要的代码更改以修复它。请更新您的代码并再次尝试。谢谢。 - euniceadu
1
@VivienG,不客气。只有在实际设备上运行应用程序而不是模拟器时,您才能将文件添加到iTunes共享文件夹中。 - euniceadu
显示剩余7条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接