Преглед на файлове

1、WDFUploadDownload,新增downloadFileToDocument接口方法。
2、WDFMobileFile,重写getAllFile接口方法。

huangyl3 преди 4 години
родител
ревизия
535c0efaf5

BIN
WadeMobileFunc/WadeMobileFunc.xcodeproj/project.xcworkspace/xcuserdata/huangyulin.xcuserdatad/UserInterfaceState.xcuserstate


+ 15 - 6
WadeMobileFunc/WadeMobileFunc/WDFMobileFile.m

@ -202,17 +202,27 @@
202 202
 * 对应JS接口: Mobile.getAllFile:function(callback,type,err)
203 203
 */
204 204
- (void)getAllFile:(NSArray *)param {
205
    NSString *result = [self getAllFiles];
206
    
207
    [super callback:result];
205
    NSString *result;
206
    NSString *basePath = [WDUtility dirInDocument:FILE_TMP];
207
    if (!param || param.count == 0 || [param[0] isKindOfClass:[NSNull class]]) {
208
        result = [self getDirectionFiles:basePath];
209
    }else {
210
        NSString *relativeDirPath = param[0];
211
        NSString *dir = [basePath stringByAppendingPathComponent:relativeDirPath];
212
        result = [self getDirectionFiles:dir];
213
    }
214
    [self callback:result];
208 215
}
209 216
210 217
- (NSString *)getAllFiles {
211 218
    NSString *path = [WDUtility dirInDocument:FILE_TMP];
219
    return [self getDirectionFiles:path];
220
}
221
222
- (NSString *)getDirectionFiles:(NSString *)dirPath {
212 223
    NSFileManager *manager = [NSFileManager defaultManager];
213
    
214 224
    NSError *error = nil;
215
    NSArray *files = [manager contentsOfDirectoryAtPath:path error:&error];
225
    NSArray *files = [manager contentsOfDirectoryAtPath:dirPath error:&error];
216 226
    if (error) {
217 227
        NSLog(@"getAllFile Error:%@",error);
218 228
        return [NSString stringWithFormat:@"Errors occurred during reading files of directory. Details:%@.", [error description]];
@ -220,7 +230,6 @@
220 230
    
221 231
    WDDataList *data = [[WDDataList alloc] init];
222 232
    [data addAll:files];
223
    
224 233
    return [data toString];
225 234
}
226 235

+ 34 - 0
WadeMobileFunc/WadeMobileFunc/WDFUploadDownload.m

@ -16,6 +16,8 @@
16 16
#import <IpuLib/AFNetworking.h>
17 17
#import <IpuLib/SDWebImageManager.h>
18 18
19
#define FILE_TMP   @"files"
20
19 21
@implementation WDFUploadDownload
20 22
21 23
/**
@ -496,4 +498,36 @@
496 498
    [self callback: ret ? @"0" : @"1"];
497 499
}
498 500
501
- (void)downloadFileToDocument:(NSArray *)param {
502
    NSAssert(param && [param isKindOfClass:[NSArray class]] && param.count, @"参数错误");
503
    
504
    NSString *resPath = param[0];
505
    NSAssert(resPath && resPath.length, @"参数resPath错误");
506
    
507
    NSString *filePath = param[1];
508
    NSAssert(filePath && filePath.length, @"参数filePath错误");
509
    
510
    NSData *resData = [NSData dataWithContentsOfURL:[NSURL URLWithString:resPath]];
511
    NSAssert(resData && resData.length, @"下载失败");
512
    
513
    NSMutableString *filePathStr = [NSMutableString stringWithString:filePath];
514
    
515
    // 处理以“/”开头的路径
516
    if ([filePathStr hasPrefix:@"/"]) {
517
        filePathStr = [NSMutableString stringWithString:[filePathStr substringFromIndex:1]];
518
    }
519
    
520
    // 1.如果目录不存在,创建
521
    NSRange range = [filePathStr rangeOfString:@"/" options:NSBackwardsSearch];
522
    NSString *dir = [filePathStr substringToIndex:range.location];
523
    NSString *fileName = [filePathStr substringFromIndex:range.location];
524
    NSString *dirPath = [[WDUtility dirInDocument:FILE_TMP] stringByAppendingPathComponent:dir];
525
    NSString *savePath = [dirPath stringByAppendingString:fileName];
526
    
527
    // 2.将数据写到文件中
528
    BOOL ret = [resData writeToFile:savePath atomically:YES];
529
    
530
    [self callback:ret ? @"0" : @"1"];
531
}
532
499 533
@end