NSPathUtilities.h管理路径
NSPathUtilities.h包含了对 NSString 类的扩展,从而为 NSString 类新增了一些专门用于操作路径的方法。——主要作用是更方便地操作路径。
对 NSString 类扩展了如下方法:
+ (NSString *)pathWithComponents:(NSArray<NSString *> *)components;
——根据components中的元素构造有效的路径pathComponents:
——分拆路径,返回该路径中各部分所组成的数组;isAbsolutePath
——判断该路径是否为绝对路径;lastPathComponent
——提取该路径的最后偶一个组成部分。pathExtension
——从路径最后一个组成部分提取扩展名。stringByDeletingLastPathComponent
——删除路径最后一个组成部分stringByAppendingPathComponent
——将 path 添加到现有路径的结尾处stringByDeletingPathExtension
——删除路径最后一个组成部分的扩展名- (nullable NSString *)stringByAppendingPathExtension:(NSString *)str;
——将指定扩展名添加到现有路径的结尾处- ⭐️
stringByAbbreviatingWithTildeInPath
——将路径中当前用户的 home 路径替换为~;将路径中指定 当前用户的 home 路径替换为~user的形式。 stringByExpandingTildeInPath
——将路径中的代字符(~或~user)解析成当前用户的 home 目录或 指定用户的 home 目录。stringByStandardizingPath
——解析路径中的~
,..
,.
和符号连接,返回解析后生成的 标准路径。stringByResolvingSymlinksInPath
——解析路径中的符号链接,返回解析后的路径
NSPathUtilities.h包含的获取系统相关属性的函数
NSUserName()
:返回当前用户名;NSFullUserName( )
:返回当前用户的完整用户名;NSHomeDirectory()
:返回当前用户的home目录NSHomeDirectoryForUser(NSString * __nullable userName)
:返回指定用户的 Home 目录;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"];