美文网首页
oc 对系统NSPathUtilities.h的简单研究

oc 对系统NSPathUtilities.h的简单研究

作者: 雨天多久就 | 来源:发表于2019-07-20 19:28 被阅读0次

    文件里首先是对NSString创建了一个分类NSString + NSStringPathExtensions.h
    这个分类的主要作用是对路径字符串的各种处理.

    • 生成路径字符串的方法
    + (NSString *)pathWithComponents:(NSArray<NSString *> *)components;
    

    根据传过来的字符串数组生成一个文件路径(各个字符串之间拼接"/"
    其实相当于[components componentsJoinedByString:@"/"]
    需要注意的是,如果要生成一个绝对路径,数组里第一个元素应该是:@"/"

    比如:NSString * testPath= [NSString pathWithComponents:@[@"/",@"mushao",@"doc",@"info.plist"]];
    这样生成的testPath为: /mushao/doc/info.plist
    
    • 路径后面拼接信息的方法
    - (NSString *)stringByAppendingPathComponent:(NSString *)str; 
    /*这个方法是在路径后面添加一个路径组成部分(就相当于上面方法的数组里多加一个字符串)*/
    
    - (nullable NSString *)stringByAppendingPathExtension:(NSString *)str;
    /*添加路径的扩展信息(比如之前是/mushao/info)
    用这个方法传参@"plist",就变成 /mushao/info.plist*/
    
    - (NSArray<NSString *> *)stringsByAppendingPaths:(NSArray<NSString *> *)paths;
    /*传一个路径字符串数组过来,生成一个路径数组并返回。比如 [@"mushao/doc/info" stringsByAppendingPaths:@[@"1",@"2"]]
    生成的结果是: @[ @"mushao/doc/info/1",@ "mushao/doc/info/2"]*/
    

    后面主要是一些只读属性,以路径为例:/mushao/doc/info.plist

    // 路径最后一部分  info.plist
    @property (readonly, copy) NSString *lastPathComponent;
    // 删除路径最后一部分后的字符串 /mushao/doc
    @property (readonly, copy) NSString *stringByDeletingLastPathComponent;
    // 文件路径扩展名 plist
    @property (readonly, copy) NSString *pathExtension;
    // 删除路径扩展 /mushao/doc/info
    @property (readonly, copy) NSString *stringByDeletingPathExtension;
    // 使用波浪号简写 ~/mushao/doc/info 波浪号代表的是用户根目录
    @property (readonly, copy) NSString *stringByAbbreviatingWithTildeInPath;
    // 展开波浪号 即显示完整的路径
    @property (readonly, copy) NSString *stringByExpandingTildeInPath;
    // 尝试把含有波浪号,父目录符合,当前目录符合等特殊符合解析成真正完整的路径 (如果失败,就返回自身字符串)
    @property (readonly, copy) NSString *stringByStandardizingPath;
    // 解析路径中的符合链接,生成完整的路径 (如果失败,就返回自身字符串)
    @property (readonly, copy) NSString *stringByResolvingSymlinksInPath;
    
    // 返回当前登录的用户名 (没太理解,模拟器上没有任何输出,真机上没测试)
    FOUNDATION_EXPORT NSString *NSUserName(void);
    // 返回当前登录的完整用户名
    FOUNDATION_EXPORT NSString *NSFullUserName(void);
    // 应用程序的沙盒主目录
    FOUNDATION_EXPORT NSString *NSHomeDirectory(void);
    
    FOUNDATION_EXPORT NSString * _Nullable NSHomeDirectoryForUser(NSString * _Nullable userName);
    // 应用程序的临时文件目录
    FOUNDATION_EXPORT NSString *NSTemporaryDirectory(void);
    // 不太明白
    FOUNDATION_EXPORT NSString *NSOpenStepRootDirectory(void);
    

    未完待续……

    相关文章

      网友评论

          本文标题:oc 对系统NSPathUtilities.h的简单研究

          本文链接:https://www.haomeiwen.com/subject/eamulctx.html