• iOS开发——遍历目录

    2012-06-13 10:28:06
     今天的任务是遍历Documents目录,获得所有pdf电子书的书名,即文件名列表。这种需求很常见,于是乎,不如来捣鼓一个方法:/** * @brief 获得指定目录下,指定后缀名的文件列表 * * @param type 文件后缀名 *...

           实用工具类的积累是任何一个开发人员必不可少的财富。

           今天的任务是遍历Documents目录,获得所有pdf电子书的书名,即文件名列表。这种需求很常见,于是乎,不如来捣鼓一个方法:

    /**
     *	@brief	获得指定目录下,指定后缀名的文件列表
     *
     *	@param 	type 	文件后缀名
     *	@param 	dirPath 	指定目录
     *
     *	@return	文件名列表
     */
    +(NSArray *) getFilenamelistOfType:(NSString *)type fromDirPath:(NSString *)dirPath;

    方法的实现:

    +(NSArray *)getFilenamelistOfType:(NSString *)type fromDirPath:(NSString *)dirPath
    {
        NSMutableArray *filenamelist = [NSMutableArray arrayWithCapacity:10];
        NSArray *tmplist = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:dirPath error:nil];
        
        for (NSString *filename in tmplist) {
            NSString *fullpath = [dirPath stringByAppendingPathComponent:filename];
            if ([self isFileExistAtPath:fullpath]) {
                if ([[filename pathExtension] isEqualToString:type]) {
                    [filenamelist  addObject:filename];
                }
            }
        }
        
        return filenamelist;
    }
    
    +(BOOL)isFileExistAtPath:(NSString*)fileFullPath {
        BOOL isExist = NO;
        isExist = [[NSFileManager defaultManager] fileExistsAtPath:fileFullPath];
        return isExist;
    }
    



    调用来验证一下:

        NSArray *filename = [WQFileManager getFilenamelistOfType:@"pdf"
                                                     fromDirPath:[WQPathUtilities documentsDirectory]];
        NSInteger count = filename.count;
        NSLog(@"I have %d books in DocumentsDir",count);
        for (int i = 0; i<count; i++) {
            NSLog(@"NO.%d is %@",i+1,[filename objectAtIndex:i]);
        }


    OK,完成任务!




    展开全文
  • 递归遍历: //递归读取解压路径下的所有.png文件 - (void)showAllFileWithPath:(NSString *) path { NSFileManager * fileManger = [NSFileManager defaultManager]; BOOL isDir = NO; BOOL isExist = ...

    递归遍历:

    //递归读取解压路径下的所有.png文件
    - (void)showAllFileWithPath:(NSString *) path {
        NSFileManager * fileManger = [NSFileManager defaultManager];
        BOOL isDir = NO;
        BOOL isExist = [fileManger fileExistsAtPath:path isDirectory:&isDir];
        if (isExist) {
            if (isDir) {
                NSArray * dirArray = [fileManger contentsOfDirectoryAtPath:path error:nil];
                NSString * subPath = nil;
                for (NSString * str in dirArray) {
                    subPath  = [path stringByAppendingPathComponent:str];
                    BOOL issubDir = NO;
                    [fileManger fileExistsAtPath:subPath isDirectory:&issubDir];
                    [self showAllFileWithPath:subPath];
                }
            }else{
                NSString *fileName = [[path componentsSeparatedByString:@"/"] lastObject];
                if ([fileName hasSuffix:@".png"]) {
                    NSLog(@"%@", path);
                }
            }
        }else{
            NSLog(@"this path is not exist!");
        }
    }


    展开全文
  • - (void)showAllFileWithPath:(NSString *) path { NSFileManager * fileManger = [NSFileManager defaultManager]; BOOL isDir = NO; BOOL isExist = [fileManger fileExistsAtPath:path isDirectory:&
    //遍历所有.m文件
    - (void)showAllFileWithPath:(NSString *) path {
        NSFileManager * fileManger = [NSFileManager defaultManager];
        BOOL isDir = NO;
        BOOL isExist = [fileManger fileExistsAtPath:path isDirectory:&isDir];
        if (isExist) {
            if (isDir) {
                NSArray * dirArray = [fileManger contentsOfDirectoryAtPath:path error:nil];
                NSString * subPath = nil;
                for (NSString * str in dirArray) {
                    subPath  = [path stringByAppendingPathComponent:str];
                    BOOL issubDir = NO;
                    [fileManger fileExistsAtPath:subPath isDirectory:&issubDir];
                    [self showAllFileWithPath:subPath];
                }
            }else{
                NSString *fileName = [[path componentsSeparatedByString:@"/"] lastObject];
                if ([fileName hasSuffix:@".m"]) {
                    //do anything you want
                }
            }
        }else{
            NSLog(@"this path is not exist!");
        }
    }

    展开全文
  • /**  * 获取沙盒中某种文件的路径和名字,存入字典返回  *  * @param type 文件类型  * @param dirPath 文件目录 ...-(NSMutableArray *)getFilenamelistOfType:(NSString *)type fromDirPath:(NSString *...
    /**
     *  获取沙盒中某种文件的路径和名字,存入字典返回
     *
     *  @param type    文件类型
     *  @param dirPath 文件目录
     *
     *  @return
     */
    -(NSMutableArray *)getFilenamelistOfType:(NSString *)type fromDirPath:(NSString *)dirPath
    {
        NSMutableArray *filenamelist = [NSMutableArray arrayWithCapacity:10];
        NSArray *tmplist = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:dirPath error:nil];
        NSMutableDictionary * fileDic = [NSMutableDictionary dictionary];
        for (NSString *filename in tmplist) {
            NSString *fullpath = [dirPath stringByAppendingPathComponent:filename];
            if ([self isFileExistAtPath:fullpath]) {
                if ([[filename pathExtension] isEqualToString:type]) {
                    fileDic[@"fileName"] = filename;
                    fileDic[@"filePath"] = fullpath;
                    [filenamelist  addObject:fileDic];
                }
            }
        }
        
        return filenamelist;
    }
    /**
     *  判断文件路径是否存在
     *
     *  @param fileFullPath 文件路径
     *
     *  @return
     */
    -(BOOL)isFileExistAtPath:(NSString*)fileFullPath {
        BOOL isExist = NO;
        isExist = [[NSFileManager defaultManager] fileExistsAtPath:fileFullPath];
        return isExist;
    }
    /**
     *  浅度遍历:根据目录路径获取该目录下所有文件夹
     *
     *  @param directory 指定目录路径
     */
    -(NSArray*)getAllFolderWithTheSpecifiedDirectory:(NSString*)directory{
        
        NSError *nserr = nil;
        NSFileManager * nsfm = [NSFileManager defaultManager];
        NSArray *fileArr = [nsfm contentsOfDirectoryAtPath:directory error:&nserr];
        //如果查看失败,(如:目录不存在),该方法会创建一个NSError对象,让传入的指针指向这个对象。
        //如果成功,创建一个数组,装文件和子目录名称,返回数组地址
        if(nserr){
            DDLogError(@"打开目录出错");
            return nil;
        }
        return fileArr;

    }

    /**
     *  深度遍历:根据目录路径获取该目录下所有文件夹和文件
     *
     *  @param directory 指定目录路径
     *
     *  @return
     */
    -(NSArray*)getAllFolderAndFileWithTheSpecifiedDirectory:(NSString*)directory{
        NSError *nserr = nil;
        NSFileManager * nsfm = [NSFileManager defaultManager];
        NSArray * fileArr = [nsfm subpathsOfDirectoryAtPath:directory error:&nserr];
        if(nserr){
            DDLogError(@"打开目录出错");
            return nil;
        }
        else{
           return fileArr;
        }
    }


    展开全文
  • + (NSMutableArray *)SeachAttachFileInDocumentDirctory{ NSMutableArray *attachArray = [[NSMutableArray alloc]init]; NSFileManager *fm = [NSFileManager defaultManager]; //如果没有目录则创建信息存储...
    + (NSMutableArray *)SeachAttachFileInDocumentDirctory{
        
        NSMutableArray *attachArray = [[NSMutableArray alloc]init];
        NSFileManager *fm = [NSFileManager defaultManager];
        //如果没有目录则创建信息存储目录
        [fm createDirectoryAtPath:[kDocumentsPath stringByAppendingPathComponent:@"MsgContent"]
                                 withIntermediateDirectories:YES
                                                  attributes:nil
                                                       error:nil];
        //递归枚举目录
        NSString *dir = [NSString stringWithFormat:@"%@/MsgContent",kDocumentsPath];
        NSDirectoryEnumerator *dirEnumerater = [fm enumeratorAtPath:dir];
        NSString *filePath = nil;
        while(nil != (filePath = [dirEnumerater nextObject])) {
            
            //NSLog(@"%@",filePath);
            NSString *msgdir = [NSString stringWithFormat:@"%@/MsgContent/%@",kDocumentsPath,filePath];
            BOOL isDir;
            if ([fm fileExistsAtPath:msgdir isDirectory:&isDir]) {
                if (!isDir){
                    //读取不是目录得文件 将图片与附件遍历出来
                    if([[filePath lastPathComponent] isEqualToString:@".DS_Store"])
                        continue;
                    
                    if([[filePath lastPathComponent] isEqualToString:@"index.htm"])
                        continue;
                    
                    if([[filePath lastPathComponent] isEqualToString:@"index.html"])
                        continue;
                    
                    AttachInfo *attachinfo = [[AttachInfo alloc]init];
                    
                    //获取文件名
                    [attachinfo setAttachName:[filePath lastPathComponent]];
                    //文件大小
                    int size = getFileSizeFromPath((char *)[msgdir UTF8String]);
                    [attachinfo setAttachSize:[NSString stringWithFormat:@"%d Bytes",size]];
                    //文件全路径
                    [attachinfo setAttachPath:msgdir];
                    //文件类型
                    [attachinfo setAttachtype:[filePath pathExtension]];
                    //文件所属GUID
                    NSArray *pathComponentsArr = [filePath pathComponents];
                    [attachinfo setAttachLocalMsgGUID:[pathComponentsArr objectAtIndex:0]];
                    //文件修改时间
                    NSDictionary *attributes = [fm attributesOfItemAtPath:msgdir error:nil];
                    NSDate *theModifiDate;
                    if ((theModifiDate = [attributes objectForKey:NSFileModificationDate])) {
                        
                        NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
                        [formatter setDateFormat:@"yyyy年M月d日 H点m分"];
                        [attachinfo setAttachModifyDate:[formatter stringFromDate:theModifiDate]];
                        [formatter release];
                    }
                    [attachArray addObject:attachinfo];
                    [attachinfo release];
                    
                }
            }
        }
    //    for (AttachInfo *obj in attachArray) {
    //        NSLog(@"attachLocalMsgGUID %@",[obj attachLocalMsgGUID]);
    //        NSLog(@"attachName %@",[obj attachName]);
    //        NSLog(@"attachtype  %@",[obj attachtype]);
    //        NSLog(@"attachSize  %@",[obj attachSize]);
    //        NSLog(@"attachPath  %@",[obj attachPath]);
    //        NSLog(@"attachPath  %@",[obj attachModifyDate]);
    //    }
        return [attachArray autorelease];
        
    }
    

    展开全文
  • NSFileManager *fileManager = [NSFileManager defaultManager];    NSArray * paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, ... NSString *docume
  • iOS WebView获取页面元素 document:属性 document.title //设置文档标题等价于HTML的标签 document.bgColor //设置页面背景色 document.fgColor //设置前景色(文本颜色) document.linkColor //...
  • 给一个简单的获取目录下所有的子文件脚本,以后可能会有用到: '设定指定目录 FolderPath = "d:\xi"'创建fso组件 Set fso = CreateObject("scripting.filesystemobject") '获取指定目录的文件夹 ...
  • 之前的旧项目加了一个功能,"...document.documentElement.scroll,在PC上有效果,在IOS/安卓上没效果 document.body.scroll,在IOS/安卓上有效果,在PC上没效果 window.scroll,都有效。  ...
  • <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> ......
  • 文/Jack_lin(简书作者) ... 著作权归作者所有,转载请联系作者获得授权,...今年,找过工作人可能会更深刻地体会到今年的就业形势不容乐观,加之,培训机构一火车地向用人单位输送iOS开发人员,打破了生态圈的动态平衡
  • iOS开发12-iOS NSFileManager的使用  代码下载(Xcode7.0.1)  有问题请联系博主,邮箱:nathanlee1987@aliyun.com 1、对文件夹的操作(创建、移动、删除、重命名、判断是否存在) //NSFileManager ...
  • 1. 遍历DOM 当遍历父节点下面的所有子节点时,例如: 1 2 9000个 9003 var div=document.getElementById("div");1) nextSibling方法 var f=div.firstChild; var name=''; do{ name=div.nodeName; }while(f=f....
  • 上一篇我们学习了如何写一个Andorid下自动更新的插件,我想还有一部分看本系列blog的开发人员希望学习在iOS下如何做插件的吧,那么今天你就可以来看看这篇文字了。 本次练习你能学到的 学习如何获取iOS当前版本...
  • javascript实现数据结构: 树和二叉树,二叉树的遍历和基本操作 树型结构是一类非常重要的非线性结构。直观地,树型结构是以分支关系定义的层次结构。 树在计算机领域中也有着广泛的应用,例如在编译程序中,用树来...
  • iOS沙盒(sandBox)机制(一)之获取沙盒路径及目录说明
  • 这是一个我在面试中遇到的问题,之前从来没有想过这个问题,所以一被问就卡住了,当然结果也就是凉凉了...// 遍历的函数主体 function getChildren(parent){ // 按着HTML里的缩进把遍历的元素打印出来 // parent.node
  • jQuery 遍历

    2012-12-27 08:44:24
    jQuery 遍历函数 jQuery 遍历函数包括了用于筛选、查找和串联元素的方法。 函数 描述 .add() 将元素添加到匹配元素的集合中。 .andSelf() 把堆栈中之前的元素集添加到当前集合中。 ....
  • 2019独角兽企业重金招聘Python工程师标准>>> ...
  • iOS的GIF动画效果实现

    2017-02-07 17:29:26
    GIF图像格式是常见的一种动态图片格式,无论是在Web端还是在移动端都经常遇到,但是考虑目前iOS还无法原生展现GIF图片,而对于GIF的原生支持暂时也没有像JPG、PNG等图像格式支持得这么全面,因此本文从图片的合成与...
1 2 3 4 5 ... 20
收藏数 4,981
精华内容 1,992