在Swift 2中的Document目录内的文件夹中保存文件时遇到问题

时间:2016-05-10 06:10:42

标签: ios swift swift2 nsfilemanager

我正在尝试将文件保存在Documents目录中的子文件夹中,但它不会保存。我似乎无法找到什么是错的。这是我尝试过的:

if let audioUrl = NSURL(string: "http://pillar.foundationu.com/wp-content/plugins/pillar-data-sync/php/htmlBreakdownResult.json") {

        let documentsUrl =  NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).first!

        do {
            let directoryContents = try NSFileManager.defaultManager().contentsOfDirectoryAtURL(documentsUrl, includingPropertiesForKeys: nil, options: NSDirectoryEnumerationOptions())
            print(directoryContents[0].path!)

            if NSFileManager().fileExistsAtPath(String(audioUrl.path!)) {
                                print("The file already exists at path")

            } else {
                                //  if the file doesn't exist
                                //  just download the data from your url
                    if let myAudioDataFromUrl = NSData(contentsOfURL: audioUrl){
                                    // after downloading your data you need to save it to your destination url
                    if myAudioDataFromUrl.writeToURL(NSURL(fileURLWithPath: directoryContents[0].path!), atomically: true) {
                                print("file saved")

                    } else {
                                print("error saving file")
                            }

                        }
                    }



        } catch let error as NSError {
            print(error.localizedDescription)
        }

    }

这是我要保存文件的位置:

/Users/rendell/Library/Developer/CoreSimulator/Devices/5A052CC5-FD34-44FD-B060-24D6F1970860/data/Containers/Data/Application/37753B0B-FAB0-478D-A7F8-98E3039D07DD/Documents/MyFolder2

但它继续给我“错误保存文件”。

1 个答案:

答案 0 :(得分:1)

首先,始终使用writeToURL:options:error来获取(更多)描述性错误消息。

问题很简单:您忘了提供文件名。

从技术上讲,您将使用数据覆盖现有文件夹。那是不可能的。