我需要将文件上传到FTP服务器,检查文件夹是否存在,如果不存在,请创建它。 我找到了Amir Abbas Mousavian的FileProvider。 我安装了所有内容并实现了以下代码:
let credential = URLCredential(user: "user", password: "password", persistence: .permanent)
let ftpProvider = FTPFileProvider(baseURL: URL(string:"cflm.org")!, mode: .active, credential: credential, cache: nil)
ftpProvider?.delegate = self as! FileProviderDelegate
ftpProvider?.contentsOfDirectory(path: "/", completionHandler: {
contents, error in
for file in contents {
print("Name: (file.name)")
print("Size: (file.size)")
print("Creation Date: (file.creationDate)")
print("Modification Date: (file.modifiedDate)")
}
})
当我运行代码时,contentOfDirectory的completeHandler永远不会触发。 有谁知道我做错了什么,或者有其他方法可以完成我需要的FTP功能?
没有调用您的闭包,因为ftpProvider
为 nil,快速浏览源代码告诉我们发送到 init 的 url 需要包含协议。因此,将"ftp"或"ftps"添加到您的网址中。
并将 init 包装在警卫语句中
guard let ftpProvider = FTPFileProvider(baseURL: URL(string:"ftp://cflm.org")!, mode: .active, credential: credential, cache: nil) else {
return //or some error handling
}
//... rest of code