将Swift中的NSFileManager文件路径转换为NSURL

时间:2015-12-17 11:58:06

标签: swift file ftp nsurl

我的应用程序上有一个文件,我使用NSFileManager动态存储。当我遍历所有文件时,我可以看到文件的完整路径:

let fileManager:NSFileManager = NSFileManager.defaultManager()
for(var i:Int = 0; i < count; i++){
    if fileManager.fileExistsAtPath(fileList[i]) != true {
        print("File path: \(fileList[i])")
    }
}

我得到了正确的路径,在这种情况下:/var/mobile/Containers/Data/Application/123321ABF/Documents/myFile.zip

直到这里都很好。但后来我想将它上传到FTP服务器,为此我需要将路径转换为NSURL,但这似乎不起作用,就像它找不到文件一样,我试过了:

let url = NSURL(string: fileList[i])

let url = NSURL(fileURLWithPath: fileList[i], isDirectory: false)

但我一直收到同样的错误:

Error Domain=NSCocoaErrorDomain Code=2 "(null)"

2 个答案:

答案 0 :(得分:0)

请尝试以下代码:

let documentsURL = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0]

let files = NSFileManager.defaultManager().enumeratorAtURL(documentsURL, includingPropertiesForKeys: nil, options: [], errorHandler: nil)
    while let file = files?.nextObject() {
        print("***")
        let modFile = file as! NSURL
        print("FILE: \(modFile)")
        print("***")
    }

如果我理解你错了,请随时纠正我!此致,Alex

答案 1 :(得分:0)

  

简单回答如下

 let URL: NSURL = NSURL(string: stringofURL)! //replace stringofURL to Path
  

实施例

// just a string
 var stringUrl = "/var/mobile/Containers/Data/Application/123321ABF/Documents/myFile.zip"
 // convert path to NSURL

   let URL: NSURL = NSURL(string: stringUrl)!

     print (URL) // print url