#import <Foundation/Foundation.h>

int main(int argc,
const char * argv[]) {

#if

//    从面向对象的角度来分析这个问题

//    1.由于目的是扫描指定文件夹下的全部文件信息,所以须要一个文件管理者的对象

NSFileManager *fileManager =
nil;

fileManager = [NSFileManager defaultManager];
//得到文件管理者对象

//    2.须要知道怎样获取home文件夹

NSString *path = [@"~" stringByExpandingTildeInPath];

//    3.怎样遍历文件夹下的全部文件(构建文件枚举对象)

NSDirectoryEnumerator *dirEnum = [fileManager enumeratorAtPath:path];

//    4.得到文件夹下的文件后,
推断文件的后缀是不是.c文件

//    5.须要构建一个可变数组,用于存放查找到的.c文件。

假设是.c文件,就放到数组里

NSMutableArray *arrayFiles = [NSMutableArray arrayWithCapacity:];

#if

NSString *fileName = [dirEnum nextObject];

while (fileName !=
nil) {

if ([[fileName pathExtension] isEqualToString:@"c"])

{

[arrayFile addObject:fileName];

}

fileName = [dirEnum nextObject];

}

#endif

NSString *fileName =
nil;

while ((fileName = [dirEnum nextObject]) !=
nil)

{

if ([[fileName pathExtension] isEqualToString:@"c"])

{

[arrayFiles addObject:fileName];

}

}

//    6.遍历数组的全部元素。
然后将其打印到屏幕上

for (NSString *name
in arrayFiles) {

NSLog(@"%@",name);

}

#endif

NSFileManager *fileManager = [NSFileManager defaultManager];

NSString *home;

home = [@"~" stringByExpandingTildeInPath];

NSMutableArray *files = [NSMutableArray arrayWithCapacity:];

//    这里的高速枚举相当于

//    NSDirectoryEnumerator *dicEnumber = [fileManager enumeratorAtPath:home];

//    NSString *fileName = [dicEnumber nextObject];

for (NSString *fileName
in [fileManager enumeratorAtPath:home]) {

if ([[fileName pathExtension] isEqualToString:@"c"]) {

[files addObject:fileName];

}

}

for (NSString *name
in files) {

NSLog(@"%@",name);

}

;

}


OC便利方法的更多相关文章

  1. OC:方法

    三种可见度 1.@public 被public 修饰的变量可以在外部(再声明一个新的类,也能访问) 和 该类的内部(在该类的.m文件内部)被访问,这样就可以在 main 函数中访问 @public 一 ...

  2. WKWebView--JS调用OC的方法

    WKWebView---JS调用OC方法 一.使用的协议进行简单的介绍 1.在WKWebView中OC和JS交互也非常简单,WebKit的库中有个代理WKScriptMessageHandler就是专 ...

  3. oc 工厂方法

    通过上例看oc创建实例有点麻烦,oc里面可以创建工厂方法可以让这个操作更简单一些(其实就是c#或者java里面的静态方法). 新建一个“Cocoa Touch Class”文件,命名为People P ...

  4. oc 调用c语言方法和oc的方法调用

    //c语方的方法 void sayHello(){ printf("Hello OC"); } int main(int argc, char * argv[]) { sayHel ...

  5. 欧莱雅浅谈OC中方法调用的顺序中的Category

    OC特有的分类Category,依赖于类.它可以在不改变原来的类内容的基础上,为类增加一些方法.分类的使用注意: (1)分类只能增加方法,不能增加成员变量: (2)在分类方法的实现中可以访问原来类中的 ...

  6. OC中-方法到底是如何使用的?

    方法:方法是Objective-C独有的一种结构,只能在Objective-C中声明.定义和使用,C语言不能声明.定义和使用. 1.类方法以+号开头,对象方法以-号开头+ (void) init;  ...

  7. OC之方法的声明实现和调用

    1. 类是来描述一群具有相同特征和行为的事物的. 类还有行为. 类的声明 @interface 类名 : NSObject { 属性. } 方法的声明 @end 类的实现. @implementati ...

  8. oc底层方法调用流程

    1.对象方法保存到类对象里面,每个类对象中都有一个方法列表.类方法保存在元类中方法列表 a.通过isa指针去对应的类中查找: b.生成方法编号,根据方法编号查找对应的方法(找到只是最终实现地址,根据地 ...

  9. OC循环方法推荐-块循环遍历(比for循环好用)

    最近在看一本书<Effective OC 2.0>,今天看到有个tip是OC适中循环各自优劣性,作者最终推荐此块循环. 阅读时思考了下块循环是否方便实现内部循环终止外部循环的问题. 于是做 ...

随机推荐

  1. ZBrush中独特功能Projection Master

    Projection Master可以理解为投影大师,它是ZBrush®的一个独特功能,该功能可以让用户使用所有的2D和2.5D笔刷工具在3D模型上进行雕刻.纹理绘制和其他的操作. 简单来说,Proj ...

  2. FCC高级编程篇之Record Collection

    Record Collection You are given a JSON object representing a part of your musical album collection. ...

  3. [ZJOI2015]诸神眷顾的幻想乡 广义后缀自动机_DFS_语文题

    才知道题目中是只有20个叶子节点的意思QAQ.... 这次的广义后缀自动机只是将 last 设为 1, 并重新插入. 相比于正统的写法,比较浪费空间. Code: #include <cstdi ...

  4. git clone 和 git pull 代码无响应

    记录一下今天 git 拉代码遇到的一些异常情况: 无论是项目目录下 git pull 还是直接 git clone 都不能正常拉代码: 异常情况1 ssh: connect to host gitee ...

  5. 简单暴力的TP5多主题方案

    一个小项目,需要配置多套前端主题.解决的思路是根据域名加载不同的主题配置. 一.在应用目录 application 下创建 common 目录. 二.application/common 目录下创建 ...

  6. tinymce原装插件源码分析(五)-searchreplace

    searchreplace 功能:查找和替换 代码注释见: https://www.xunhanliu.top/static/js/tinymce/plugins/searchreplace/plug ...

  7. JSON.stringify(),JSON.parse(),eval(string)

      JSON.stringify()用于从一个对象解析出字符串 : var obj = {"name":"week","age":" ...

  8. man 7 glob

    GLOB(7) Linux Programmer's Manual GLOB(7) NAME glob - 形成路径名称 描述 (DESCRIPTION) 很久以前 在 UNIX V6 版 中 有一个 ...

  9. docker mysql镜像忽略表名大小写

    原文:docker mysql镜像忽略表名大小写 1.安装mysql镜像 docker pull mysql/mysql-server 2.运行mysql docker run --net=host ...

  10. HDOJ 5087 Revenge of LIS II DP

    DP的时候记录下能否够从两个位置转移过来. ... Revenge of LIS II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: ...