手机ftp客户端_Swift实现FTP客户端的制作(使用Rebekka库)

更新时间:2020-03-30    来源:安卓教程    手机版     字体:

【www.bbyears.com--安卓教程】

下面介绍如何使用第三方库 Rebekka 来进行FTP客户端的开发,实现的功能包括:FTP服务器连接,文件列表的查询,文件夹创建,上传文件,下载文件。

1,Rebekka的说明与配置

Rebekka是一个用Swift语言写的FTP/FTPS客户端操作库。其内部封装使用的是CFNetworking网络库的CFFTPStream API。

下载地址:https://github.com/Constantine-Fry/rebekka

 

(1)把“Rebekka.xcodeproj”拖入到项目中来

 

原文:Swift - FTP客户端的制作(使用Rebekka库)
(2)在“项目” -> “Build Phases” -> “Target Dependencies”中把“RebekkaTouch”添加进来。

 

原文:Swift - FTP客户端的制作(使用Rebekka库)

 

(3)在需要使用的时候 import 即可


(3)在需要使用的时候 import 即可

import RebekkaTouch

2,初始化连接配置


import UIKit
import RebekkaTouch
 
class ViewController: UIViewController {
    
    var session: Session!
 
    override func viewDidLoad() {
        super.viewDidLoad()
       
        var configuration = SessionConfiguration()
        configuration.host = "ftp://ftp.hangge.com"
        configuration.username = "ftpuser"
        configuration.password = "123456"
        session = Session(configuration: configuration)
    }
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}

3,获取文件、文件夹列表并输出

下面把根目录下的所有文件、文件夹名字打印出来(当然还可以获取到其他信息,比如文件创建者,创建时间等等)


showList("/")
    
func showList(path: String) {
    session.list(path) {
        (resources, error) -> Void in
        for item in resources!{
            print("文件类型:\(item.type)   文件名称:\(item.name)")
        }
    }
}

原文:Swift - FTP客户端的制作(使用Rebekka库)

4,新建文件夹

createDirectory("/upload/测试文件夹")
    
func createDirectory(path: String) {
    session.createDirectory(path) {
        (result, error) -> Void in
        if result {
            print("文件夹创建成功!")
        }else {
            print("文件夹创建失败: \(error)")
        }
    }
}

5,上传文件

func testUploadFile() {
    //本地文件
    let URL = NSBundle.mainBundle().URLForResource("logo", withExtension: "png")
    //服务器路径以及保存的文件名
    let path = "/upload/\(NSUUID().UUIDString).png"
    //上传文件
    session.upload(URL!, path: path) {
        (result, error) -> Void in
        if result {
            print("文件上传成功!")
        }else {
            print("文件上传失败: \(error)")
        }
    }
}

6,下载文件

默认下载下来的文件是保存在临时文件夹下并随机命名的。我们可以在下载完毕的回调方法中将其移动到需要的目录(比如用户文档目录)并重命名。


func testDownloadFile() {
    self.session.download("/upload/hangge.png") {
        (fileURL, error) -> Void in
        print("文件保存地址:\(fileURL)")
    
        //下载下来的临时文件,要自行处理
        /**
        if let fileURL = fileURL {
            do {
                try NSFileManager.defaultManager().removeItemAtURL(fileURL) //删除临时文件
            } catch let error as NSError {
                print("Error: \(error)")
            }
        }**/
    }
}

本文来源:http://www.bbyears.com/shoujikaifa/90684.html

热门标签

更多>>

本类排行