iOS FTP 文件下载

版权声明:本文为博主原创文章,欢迎转载。 https://blog.csdn.net/chen12302asd/article/details/81874062

最近的项目需要FTP下载配置文件,之前都是用https网络请求,对FTP不是很了解,上网看了很多资料,最终实现了FTP文件下载的功能。
使用的是 GoldRaccoon 第三方库,参照iOS ftp下载远程文件夹内容 这篇文章实现了文件下载。关于FTP服务器的搭建,WIN7环境下通过ISS7快速搭建简易FTP服务器 这篇文章讲的很详细。

代码如下:

#import "ViewController.h"
#import "GRRequestsManager.h"
#import "GRListingRequest.h"

@interface ViewController ()<GRRequestsManagerDelegate>
@property (nonatomic, strong) GRRequestsManager *requestsManager;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
}

- (IBAction)click:(id)sender {

    [self.requestsManager addRequestForListDirectoryAtPath:@""];
    [self.requestsManager startProcessingRequests];


}

#pragma mark *** GRRequestsManagerDelegate ***


//代理方法,每次执行列表方法都会走这个方法
- (void)requestsManager:(id<GRRequestsManagerProtocol>)requestsManager didCompleteListingRequest:(id<GRRequestProtocol>)request listing:(NSArray *)listing{
    //沙盒目录
    NSString *documentsDirectoryPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingString:@"/outxml"];
    GRListingRequest *req = (GRListingRequest *)request;
    //远程文件夹列表
    NSLog(@"%@",listing);
    //打印创建的目录
    NSLog(@"%@",documentsDirectoryPath);
    NSFileManager *fileManager = [NSFileManager defaultManager];
    //文件夹列表枚举
    [listing enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
        if ([[obj pathExtension] isEqualToString:@""]) {

        }else{
            //如果目录下的不是文件夹,则下载这个文件到沙盒的指定目录下
            [self.requestsManager addRequestForDownloadFileAtRemotePath:[NSString stringWithFormat:@"%@/%@",req.path,obj] toLocalPath:[documentsDirectoryPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@%@",req.path,obj]]];
            [self.requestsManager startProcessingRequests];
        }
    }];
}

#pragma mark *** Lazy loading ***
- (GRRequestsManager *)requestsManager{
    if (!_requestsManager) {
        //初始化请求类,需要ftp的地址,用户名密码
        //这里是我自己在服务器上搭建了一个ftp服务器,并建立站点
        _requestsManager = [[GRRequestsManager alloc]initWithHostname:@"ftp://192.168.137.1" user:@"tradenow" password:@"Asfit_123"];
        // 设置代理
        _requestsManager.delegate = self;
    }
    return _requestsManager;
}

@end

显示结果:

2018-08-20 16:54:44.521100+0800 0820[6511:259748] (
    20180504,
    "ReqQryTransferSerial.xml"
)
2018-08-20 16:54:44.521260+0800 0820[6511:259748] /Users/user/Library/Developer/CoreSimulator/Devices/4E2102E8-6C99-4393-9AF9-0FC40FD61D6F/data/Containers/Data/Application/7DC1E9E0-0224-492C-80BF-663970EA28BC/Documents/outxml

猜你喜欢

转载自blog.csdn.net/chen12302asd/article/details/81874062