iOS GoldRaccoon第三方FTP文件夹下载失败原因
一、问题描述:1.下载失败报错:
文件写入失败Error Domain=NSCocoaErrorDomain Code=512 "未能将文件“jquery_1_10_2_min.js”存储到文件夹“Q20180104153006399”中。"
原因及解决方法:文件夹下均为文件,不包含子文件夹,GoldRaccoon第三方不会创建存储的本地文件夹,所以需要自己提前手动创建好下载的本地文件夹
NSFileManager *fileManager = [NSFileManager defaultManager];NSString *zhenggedizhi1 = [documentsDirectoryPath stringByAppendingString:[NSString stringWithFormat:@"/%@/Q20180104153006399",@"OralQuesBank"]];[fileManager createDirectoryAtPath:zhenggedizhi1 withIntermediateDirectories:YES attributes:nil error:nil];
二、补充:GoldRaccoon基本使用方法
第三方GoldRaccoon使用方法主要参考网址:https://blog.csdn.net/wobushizhaoqian/article/details/72845898?locationNum=10&fps=1
代码:
/** 下载FTP资源 */ #import "GRRequestsManager.h" #import "GRListingRequest.h" #import "FCFileManager.h" <GRRequestsManagerDelegate> @property (nonatomic, strong) GRRequestsManager *requestsManager;
- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view.self.view.backgroundColor = [UIColor orangeColor]; UIButton *downBtn = [UIButton buttonWithType:UIButtonTypeCustom];[downBtn setTitle:@"下载" forState:UIControlStateNormal];downBtn.backgroundColor = [UIColor cyanColor];[downBtn addTarget:self action:@selector(startDownClick) forControlEvents:UIControlEventTouchUpInside];[self.view addSubview:downBtn];[downBtn mas_makeConstraints:^(MASConstraintMaker *make) {make.center.equalTo(self.view);make.size.mas_equalTo(CGSizeMake(50, 40));}]; }- (void)startDownClick{//列表localuser下的文件夹目录,这里做的只是列表目录下面有什么[self.requestsManager addRequestForListDirectoryAtPath:@"OralQuesBank/Q20180104153006399"]; [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];GRListingRequest *req = (GRListingRequest *)request;//远程文件夹列表NSLog(@"%@",listing);//打印创建的目录NSLog(@"%@",documentsDirectoryPath);NSFileManager *fileManager = [NSFileManager defaultManager];NSString *zhenggedizhi1 = [documentsDirectoryPath stringByAppendingString:[NSString stringWithFormat:@"/%@/Q20180104153006399",@"OralQuesBank"]];[fileManager createDirectoryAtPath:zhenggedizhi1 withIntermediateDirectories:YES attributes:nil error:nil];//文件夹列表枚举[listing enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { if ([[obj pathExtension] isEqualToString:@""]) {//整个地址,在沙盒中创建和远程文件一样的文件夹目录NSString *zhenggedizhi = [documentsDirectoryPath stringByAppendingString:[NSString stringWithFormat:@"%@/%@",req.path,obj]];//如果沙盒中的这个文件夹不存在就创建if (![fileManager fileExistsAtPath:zhenggedizhi]) {[fileManager createDirectoryAtPath:zhenggedizhi withIntermediateDirectories:YES attributes:nil error:nil];}//然后接着递归列举文件夹下的子文件夹下的目录[self.requestsManager addRequestForListDirectoryAtPath:[NSString stringWithFormat:@"%@%@",req.path,obj]];[self.requestsManager startProcessingRequests];}else{//如果目录下的不是文件夹,则下载这个文件到沙盒的指定目录下NSString *zhenggedizhi = [documentsDirectoryPath stringByAppendingString:[NSString stringWithFormat:@"%@/%@",req.path,obj]];//如果沙盒中的这个文件夹不存在就创建if (![fileManager fileExistsAtPath:zhenggedizhi]) {[fileManager createDirectoryAtPath:zhenggedizhi withIntermediateDirectories:YES attributes:nil error:nil];}[self.requestsManager addRequestForDownloadFileAtRemotePath:[NSString stringWithFormat:@"%@/%@",req.path,obj] toLocalPath:[documentsDirectoryPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@%@",req.path,obj]]];[self.requestsManager startProcessingRequests];}}];} - (void)requestsManager:(id<GRRequestsManagerProtocol>)requestsManager didFailRequest:(id<GRRequestProtocol>)request withError:(NSError *)error {NSLog(@"请求失败requestsManager:didFailRequest:withError: \n %@", error);// NSString *errorStr = [NSString stringWithFormat:@"%@",error]; // [self downLoadFail];//可添加处理下载失败后自己的删除文件夹路径方法 }- (void)requestsManager:(id<GRRequestsManagerProtocol>)requestsManager didFailWritingFileAtPath:(NSString *)path forRequest:(id<GRDataExchangeRequestProtocol>)request error:(NSError *)error{LSLog(@"文件写入失败%@",error); }- (void)requestsManagerDidCompleteQueue:(id<GRRequestsManagerProtocol>)requestsManager{LSLog(@"整个文件夹下载完成+++++++++++++++++"); }#pragma mark - layzy - (GRRequestsManager *)requestsManager{if (!_requestsManager) {_requestsManager = [[GRRequestsManager alloc] initWithHostname:@"ftp://11.11.111.11:12" user:@"Administrator" password:@"这是ftp密码"];// 设置代理_requestsManager.delegate = self;}return _requestsManager; }
转载于:https://www.cnblogs.com/wusang/p/9110689.html
iOS GoldRaccoon第三方FTP文件夹下载失败原因相关推荐
- 搭建FTP服务器出现的“FTP文件夹错误”解决方法
[说明] 网上FTP的搭建能找到很多教程,这里不再阐述.主要说下在FTP服务器搭建完成后,访问该FTP服务器时提示"FTP文件夹错误"的原因和解决方法. [系统环境] window ...
- Python 连接FTP服务器并实现文件夹下载实例演示,python区分ftp目录下文件和文件夹方法,ftp目录下包含中文名问题处理
Python 连接 FTP 服务器并实现文件夹下载实例演示 第一章:连接 FTP 服务器并实现文件夹下载 ① 连接 FTP 服务器 ② 进入指定目录并显示文件信息 ③ 区分文件和文件夹名 ④ 文件夹名 ...
- ftp文件夹错误 参数错误_收藏夹和404错误
ftp文件夹错误 参数错误 As you probably already know, adding a favorite icon to your website is a great way to ...
- QFtp实现文件夹下载
QFtp实现文件夹下载类,希望能帮到有需要的人 完整文件资源链接 https://download.csdn.net/download/ufe_1/12838957 以下是cpp源码: ftpDown ...
- ftp上传显示服务器错误,FTP文件夹错误:打开FTP服务器上的文件夹时发生错误
问题描述:通过我的电脑或资源管理器连接FTP服务器时提示"FTP文件夹错误:打开FTP服务器上的文件夹时发生错误.请检查是否有权限访问该文件夹.详细信息:The operation time ...
- 拷贝文件到服务器 提示FTP文件夹错误
FTP文件夹错误 将文件复制到FTP服务器时发生错误.请检查是否有权限将文件放到该服务器上. 详细信息: 200 Type set to I. 227Entering Passive Mode (12 ...
- 【无标题】FTP文件夹错误:打开FTP服务器上的文件夹时发生错误。请检查是否有权限访问该文件夹。
问题描述:通过我的电脑或资源管理器连接FTP服务器时提示"FTP文件夹错误:打开FTP服务器上的文件夹时发生错误.请检查是否有权限访问该文件夹.详细信息:The operation time ...
- win7系统ftp无法访问服务器,技术员详解电脑打开FTp文件夹出错提示windows无法访问的教程?...
技术员详解电脑打开FTp文件夹出错提示windows无法访问的教程? ? 近来有网友反映在电脑中打开FTp文件夹时出错,提示windows无法访问此文件夹.对于上述的FTp文件夹打开错误的问题,咱们应 ...
- 为什么从此电脑访问不了ftp_电脑打开FTP文件夹出错提示Windows无法访问的解决方法...
近来有用户反映在电脑中打开FTP文件夹时出错,提示Windows无法访问此文件夹.对于上述的FTP文件夹打开错误的问题,我们应该如何解决呢?首先我们需要确认打开的FTP是正确的,并有权进行访问,可 ...
最新文章
- API 面试四连杀:接口如何设计?安全如何保证?签名如何实现?防重如何实现?...
- 单片机教学视频讲得好
- 自动化配置和部署工具--puppet(1)--什么是puppet
- Java基础知识强化之IO流笔记42:IO流总结(图解)
- 强化学习(一)---绪论
- Java提高—对象克隆(复制)/对象属性拷贝
- MySQL的4大版本
- 【theano-windows】学习笔记六——theano中的循环函数scan
- 广度优先搜索——岛屿数量(Leetcode 200)
- 张朝阳:社交是互联网的中原 做「狐友」是要逐鹿中原
- Android 开发环境配置问题
- 比赛之前的数据清零操作
- 说说大型高并发高负载网站的系统架构
- oracle软件 乱码,oracle 中文乱码解决办法
- 制度罚则-- 日志规范
- 单片机复位电路的可靠性设计及精典实用复位电路
- 使用dockpanel动态添加picturebox并绑定图片
- mysql table plugin,MySql报错Table mysql.plugin doesn’t exist的解决方法
- Apache服务器报错信息,端口号等原因
- VTK画椭球 C++