最近几天积累了一些示例代码,总结一下,熟练之前可以拷贝拿来用,节省到处找的时间
数组排序
数组中有多个文件full path,文件名中是带有时间戳的,所以想按照文件名排序,就可以实现按顺序上传了。代码如下:
// 排序,需要根据时间戳确定上传的顺序 NSArray *sorted = [zipFile sortedArrayUsingComparator:^NSComparisonResult(NSString *str1, NSString *str2) { NSString *fileName1 = [str1 lastPathComponent]; NSString *fileName2 = [str2 lastPathComponent]; NSStringCompareOptions options = NSCaseInsensitiveSearch | NSNumericSearch; return [fileName1 compare:fileName2 options:options]; }];
zipFile是一个NSArray,里面是所有zip文件的path,在block里先将path截掉,只保留文件名,然后用NSString的compare方法来比较
遍历文件夹
拿到一个文件夹的path之后,要遍历此文件夹,得到所有文件和子目录的path
NSArray *fileList = [fileManager contentsOfDirectoryAtPath:@"/users/apple/Library" error:nil];
返回值是NSArray类型,元素是所有的文件和子目录
字符串拼接
如果字符串个数不多,那用NSString的各种stringByAppending方法就可以了,比如:
[@"abc" stringByAppendingString:@"def"];// abcdef
如果字符串的个数很多,用这个API就会非常难看,这个时候可以用stringWithFormat方法,比如:
[NSString stringWithFormat:@"%@,%@,%@", @"abc", @"def", @"ghi"];// abc,def,ghi
如果字符串的个数不确定,那上面2个方法就都不好用了,需要用NSMutableString,类似java里的StringBuilder
NSMutableString *result = [NSMutableString new]; [result appendString:first]; [result appendString:@","];
获取文件名
得到完整的path,经常想取出文件名:
[@"path/to/file.png" stringByDeletingLastPathComponent];// file.png
如果连扩展名都不想要:
[@"file.png" stringByDeletingPathExtension];// file
总之,在ios中操作文件夹和字符串还是很方便的,只要熟悉NSFileManager和NSString的API
作者:kyfxbl 发表于2013-12-14 0:05:11 原文链接
阅读:253 评论:0 查看评论