123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- //
- // QMProfileManager.m
- // IMSDK-OC
- //
- // Created by HCF on 16/8/11.
- // Copyright © 2016年 HCF. All rights reserved.
- //
- #import "QMProfileManager.h"
- #import "QMFileModel.h"
- #import "QMFileManager.h"
- @implementation QMProfileManager
- static NSString *DocFolder = @"%@/Doc";
- static NSString *ImageFolder = @"%@/Image";
- static NSString *AudioFolder = @"%@/Audio";
- static NSString *VideoFolder = @"%@/Video";
- static NSString *OtherFolder = @"%@/Other";
- static NSString *SendVideoFolder = @"%@/SendVideo";
- static NSString *profileList = @"profiles.plist";
- static NSString *lastLogin = @"lastlogin.plist";
- static NSString *KEY_LASTLOGIN_NAME = @"LASTLOGIN_NAME";
- static NSString *KEY_LASTLOGIN_PASSWORD = @"LASTLOGIN_PASSWORD";
- static QMProfileManager * instance = nil;
- + (instancetype)sharedInstance {
- static dispatch_once_t onceToken;
- dispatch_once(&onceToken, ^{
- instance = [[self alloc] init];
- });
- return instance;
- }
- + (instancetype)allocWithZone:(struct _NSZone *)zone {
- static dispatch_once_t onceToken;
- dispatch_once(&onceToken, ^{
- instance = [super allocWithZone:zone];
- });
- return instance;
- }
- - (BOOL)loadProfile: (NSString *)name password: (NSString *)password {
- if (![QMFileManager fileIsExsited:profileList]) {
- [QMFileManager writeDictionary:[NSDictionary new] toFile:profileList];
- [QMFileManager writeDictionary:[NSDictionary new] toFile:lastLogin];
- }
-
- NSMutableDictionary *profiles = [QMFileManager readDictionary:profileList];
- if ([profiles objectForKey:name]==nil) {
- [QMFileManager createFolder:name];
-
- [QMFileManager createFolder:[NSString stringWithFormat:DocFolder, name]];
- [QMFileManager createFolder:[NSString stringWithFormat:AudioFolder, name]];
- [QMFileManager createFolder:[NSString stringWithFormat:ImageFolder, name]];
- [QMFileManager createFolder:[NSString stringWithFormat:VideoFolder, name]];
- [QMFileManager createFolder:[NSString stringWithFormat:OtherFolder, name]];
- [QMFileManager createFolder:[NSString stringWithFormat:SendVideoFolder, name]];
- }
-
- NSDictionary *lastDict = @{
- KEY_LASTLOGIN_NAME :name,
- KEY_LASTLOGIN_PASSWORD :password
- };
- [QMFileManager writeDictionary:lastDict toFile:lastLogin];
- return YES;
- }
- - (NSArray *)getFilesAttributes: (enum QMFileCategory)type {
- NSMutableArray *fileModels = [[NSMutableArray alloc] init];
- NSMutableDictionary *profiles = [QMFileManager readDictionary:lastLogin];
- if ([profiles objectForKey:KEY_LASTLOGIN_NAME] == nil) {
- return fileModels;
- }
-
- NSString *folder = @"";
- switch (type) {
- case DOCX:
- folder = [NSString stringWithFormat:DocFolder, [profiles objectForKey:KEY_LASTLOGIN_NAME]];
- break;
- case IMAGE:
- folder = [NSString stringWithFormat:ImageFolder, [profiles objectForKey:KEY_LASTLOGIN_NAME]];
- break;
- case AUDIO:
- folder = [NSString stringWithFormat:AudioFolder, [profiles objectForKey:KEY_LASTLOGIN_NAME]];
- break;
- case VIDEO:
- folder = [NSString stringWithFormat:VideoFolder, [profiles objectForKey:KEY_LASTLOGIN_NAME]];
- break;
- case OTHER:
- folder = [NSString stringWithFormat:OtherFolder, [profiles objectForKey:KEY_LASTLOGIN_NAME]];
- break;
- default:
- break;
- }
-
- NSArray *fileNames = [QMFileManager getFileNames:folder];
-
- NSLog(@"%@", fileNames);
-
- for (NSString * fileName in fileNames) {
-
- NSLog(@"%@", fileName);
-
- NSLog(@"%@", [NSString stringWithFormat:@"%@/%@", folder, fileName]);
-
- NSDictionary *fileInfo = [QMFileManager getFileAttributes:[NSString stringWithFormat:@"%@/%@", folder, fileName]];
-
- QMFileModel *model = [[QMFileModel alloc] init];
- model.fileName = fileName;
-
- NSDateFormatter * formatter = [[NSDateFormatter alloc] init];
- formatter.dateFormat = @"MM-dd HH:mm";
- model.fileDate = [formatter stringFromDate:[fileInfo objectForKey:NSFileCreationDate]];
- if ([[fileInfo objectForKey:NSFileSize] floatValue] > 1024) {
- model.fileSize = [NSString stringWithFormat:@"%.f KB", [[fileInfo objectForKey:NSFileSize] floatValue]/1024];
- }else {
- model.fileSize = [NSString stringWithFormat:@"%.f MB", [[fileInfo objectForKey:NSFileSize] floatValue]/1024/1024];
- }
-
- // model.fileSize = [[fileInfo objectForKey:NSFileSize] description];
- model.filePath = [NSString stringWithFormat:@"%@/%@", folder, fileName];
-
- [fileModels addObject:model];
- }
- return fileModels;
- }
- - (NSString *)getFilePath: (NSString *)fileName {
-
- NSMutableDictionary *profiles = [QMFileManager readDictionary:lastLogin];
- if ([profiles objectForKey:KEY_LASTLOGIN_NAME] == nil) {
- return @"";
- }
-
- NSString *folder = [NSString stringWithFormat:[self checkFileExtension:fileName], [profiles objectForKey:KEY_LASTLOGIN_NAME]];
-
- NSLog(@"%@", [NSString stringWithFormat:@"%@/%@", folder, fileName]);
- return [NSString stringWithFormat:@"%@/%@", folder, fileName];
- }
- - (NSString *)checkFileExtension: (NSString *)name {
- NSMutableDictionary *profiles = [QMFileManager readDictionary:lastLogin];
- if ([profiles objectForKey:KEY_LASTLOGIN_NAME] == nil) {
- return name;
- }
-
- NSString *tempString = @"";
- NSString *exten = name.pathExtension.lowercaseString;
-
- if ([exten isEqualToString:@"doc"]||[exten isEqualToString:@"docx"]||[exten isEqualToString:@"ppt"]||[exten isEqualToString:@"pptx"]||[exten isEqualToString:@"xls"]||[exten isEqualToString:@"xlsx"]||[exten isEqualToString:@"xml"]||[exten isEqualToString:@"wps"]||[exten isEqualToString:@"txt"]||[exten isEqualToString:@"html"]||[exten isEqualToString:@"htm"]||[exten isEqualToString:@"pps"]||[exten isEqualToString:@"text"]) {
- tempString = [NSString stringWithFormat:DocFolder, [profiles objectForKey:KEY_LASTLOGIN_NAME]];
- }else if ([exten isEqualToString:@"png"]||[exten isEqualToString:@"gif"]||[exten isEqualToString:@"jpg"]||[exten isEqualToString:@"jpeg"]||[exten isEqualToString:@"bmp"]) {
- tempString = [NSString stringWithFormat:ImageFolder, [profiles objectForKey:KEY_LASTLOGIN_NAME]];
- }else if ([exten isEqualToString:@"mp3"]||[exten isEqualToString:@"wav"]||[exten isEqualToString:@"m4a"]||[exten isEqualToString:@"wma"]||[exten isEqualToString:@"caf"]) {
- tempString = [NSString stringWithFormat:AudioFolder, [profiles objectForKey:KEY_LASTLOGIN_NAME]];
- }else if ([exten isEqualToString:@"avi"]||[exten isEqualToString:@"mov"]||[exten isEqualToString:@"mp4"]||[exten isEqualToString:@"mkv"]||[exten isEqualToString:@"rmvb"]||[exten isEqualToString:@"wmv"]) {
- tempString = [NSString stringWithFormat:VideoFolder, [profiles objectForKey:KEY_LASTLOGIN_NAME]];
- }else {
- tempString = [NSString stringWithFormat:OtherFolder, [profiles objectForKey:KEY_LASTLOGIN_NAME]];
- }
-
- return [NSString stringWithFormat:@"%@/%@", tempString, name];
- }
- @end
|