看了NSString的API后才发现
世界是那么的大
大到一篇文章都写不下
路径扩展
NSPathUtilities.h, 路径处理在APP开发中很少用到,一般不保存内容到目录,直接保存在内存中。
+ (NSString *)pathWithComponents:(NSArray<NSString *> *)components;
将数组中的字符串使用"/"符号连接成一个字符串。例如 NSString *path = [NSString pathWithComponents:@[@"home", @"tmp", @"picture"]];
这显示的字符串为home/tmp/picture。
@property (readonly, copy) NSArray<NSString *> *pathComponents;
将路径字符串根据"/"分割,返回包含所有的字符串的数组。 例如“home/tmp/picture”将返回包含“home”,“tmp”和“picture”的字符串的数组。
@property (getter=isAbsolutePath, readonly) BOOL absolutePath;
判断是否为绝对路径。例如:“home/tmp/picture”不是绝对路径,是相对路径。 “/home/tmp/picture”为绝对路径。
@property (readonly, copy) NSString *lastPathComponent;
返回最后路径组成部分。 例如:“home/tmp/picture”返回“picture”。
@property (readonly, copy) NSString *stringByDeletingLastPathComponent;
删除路径的最后部分。 例如: “home/tmp/picture”返回“home/tmp”。
- (NSString *)stringByAppendingPathComponent:(NSString *)str;
在最后添加输入的字符串。例如: 输入的字符串为“my”,那么“home/tmp/picture”追加后为“home/tmp/picture/my”。
@property (readonly, copy) NSString *pathExtension;
返回后缀的字符串。 例如: “home/tmp/picture”返回为空。如果“home/tmp/picture.png”则返回为“png”。
@property (readonly, copy) NSString *stringByDeletingPathExtension;
删除路径的后缀。 例如: "home/tmp/picture.png"返回“home/tmp/picture”。
- (nullable NSString *)stringByAppendingPathExtension:(NSString *)str;
添加后缀。 例如, 后缀为“jpg”,那么"home/tmp/picture"执行返回“home/tmp/picture.jpg”。
@property (readonly, copy) NSString *stringByAbbreviatingWithTildeInPath;
将路径字符串中以NSHomeDirectory()开始的,则NSHomeDirectory()部分替换为"~". 例如: “/Users/arthurwang/Library/Developer/CoreSimulator/Devices/3A7D67DC-0820-46BE-A567-53625AA03CD9/data/Containers/Data/Application/7DA5A209-A876-446F-966F-4FBD380E477F/test/picture” 会输出“~/test/picture”。
@property (readonly, copy) NSString *stringByExpandingTildeInPath;
将“”或“*”展开为NSHomeDirectory()内容。例如: “/app/download”或“sfsdf/app/download”,返回“/Users/arthurwang/Library/Developer/CoreSimulator/Devices/3A7D67DC-0820-46BE-A567-53625AA03CD9/data/Containers/Data/Application/0830128F-2C4C-4BB1-800A-0617E6E2D015/app/download”。
@property (readonly, copy) NSString *stringByStandardizingPath;
返回标准的路径,执行的操作:(1)展开“~”。 (2)路径中“/private/var/automount/”,"/var/automount"或“/private”,如果移除这些路径后,结果字符串为有效的存在的路径,则移除。 (3)移除“//”和"/./"的路径。 (4)如果为绝对路径,那么".."解析为上一级的路径。"."解析为当前的路径。
@property (readonly, copy) NSString *stringByResolvingSymlinksInPath;
解析绝对路径中的符号链接,相对路径不解析。
符号链接,又称为软连接,是一种特殊的符号。
FOUNDATION_EXPORT NSString *NSHomeDirectory(void);
FOUNDATION_EXPORT NSString * _Nullable NSHomeDirectoryForUser(NSString * _Nullable userName);
FOUNDATION_EXPORT NSString *NSTemporaryDirectory(void);
获取主路径。 例如:NSHomeDirectory()为 /Users/arthurwang/Library/Developer/CoreSimulator/Devices/3A7D67DC-0820-46BE-A567-53625AA03CD9/data/Containers/Data/Application/E31F52E0-E270-4707-8DD2-AC09EDE883F9。
// END 又一次了解了路径的处理。