【IOS 开发学习总结-OC-35】★文件 I/O——NSPathUtilities.h管理路径+NSProcessInfo获取进程信息

本文详细介绍了NSPathUtilities.h如何管理Objective-C中的路径,包括路径操作方法如构建、分拆、判断、扩展名处理等。同时,探讨了NSProcessInfo如何获取进程信息,包括进程参数、系统属性如主机名、操作系统信息等。还对比了argv与NSProcessInfo获取参数的不同。
摘要由CSDN通过智能技术生成

NSPathUtilities.h管理路径

NSPathUtilities.h包含了对 NSString 类的扩展,从而为 NSString 类新增了一些专门用于操作路径的方法。——主要作用是更方便地操作路径。

对 NSString 类扩展了如下方法:

  1. + (NSString *)pathWithComponents:(NSArray<NSString *> *)components;——根据components中的元素构造有效的路径
  2. pathComponents:——分拆路径,返回该路径中各部分所组成的数组;
  3. isAbsolutePath——判断该路径是否为绝对路径;
  4. lastPathComponent——提取该路径的最后偶一个组成部分。
  5. pathExtension——从路径最后一个组成部分提取扩展名。
  6. stringByDeletingLastPathComponent——删除路径最后一个组成部分
  7. stringByAppendingPathComponent——将 path 添加到现有路径的结尾处
  8. stringByDeletingPathExtension——删除路径最后一个组成部分的扩展名
  9. - (nullable NSString *)stringByAppendingPathExtension:(NSString *)str;——将指定扩展名添加到现有路径的结尾处
  10. ⭐️ stringByAbbreviatingWithTildeInPath——将路径中当前用户的 home 路径替换为~;将路径中指定 当前用户的 home 路径替换为~user的形式。
  11. stringByExpandingTildeInPath——将路径中的代字符(~或~user)解析成当前用户的 home 目录或 指定用户的 home 目录。
  12. stringByStandardizingPath——解析路径中的~,..,.和符号连接,返回解析后生成的 标准路径。
  13. stringByResolvingSymlinksInPath——解析路径中的符号链接,返回解析后的路径

NSPathUtilities.h包含的获取系统相关属性的函数

  1. NSUserName():返回当前用户名;
  2. NSFullUserName( ):返回当前用户的完整用户名;
  3. NSHomeDirectory():返回当前用户的home目录
  4. NSHomeDirectoryForUser(NSString * __nullable userName):返回指定用户的 Home 目录;
  5. NSOpenStepRootDirectory():返回系统的临时目录。

示例代码:

#import <Foundation/Foundation.h>

int main(int argc , char * argv[])
{
    @autoreleasepool{
        NSLog(@"当前用户名为:%@" , NSUserName());
        NSLog(@"当前用户的完整用户名为:%@" , NSFullUserName());
        NSLog(@"当前用户的home目录为:%@" , NSHomeDirectory());
        NSLog(@"root用户的home目录为:%@" , 
            NSHomeDirectoryForUser(@"root"));
        NSLog(@"系统临时目录为:%@" , 
            NSTemporaryDirectory());
        NSString* path = @"~root";
        // 将~root解析成root用户的home目录
        NSLog(@"解析~root的结果:%@" ,
            [path stringByExpandingTildeInPath]);
        NSString* path2 = @"/Users/yeeku/publish";
        // 将会输出~/publish
        NSLog(@"替换成~的形式:%@" ,
            [path2 stringByAbbreviatingWithTildeInPath]);
        NSArray* array = [path2 pathComponents];
        // 遍历该路径中包含的各路径组件
        for(NSString* item in array)
        {
            NSLog(@"%@" , item);
        }
        // 在path2路径后追加一个路径
        NSString* path3 = [path2 stringByAppendingPathComponent:@"abc.m"];
      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值