看了NSString的API后才發(fā)現(xiàn)
世界是那么的大
大到一篇文章都寫(xiě)不下
路徑擴(kuò)展
NSPathUtilities.h, 路徑處理在APP開(kāi)發(fā)中很少用到,一般不保存內(nèi)容到目錄,直接保存在內(nèi)存中。
+ (NSString *)pathWithComponents:(NSArray<NSString *> *)components;
將數(shù)組中的字符串使用"/"符號(hào)連接成一個(gè)字符串。例如 NSString *path = [NSString pathWithComponents:@[@"home", @"tmp", @"picture"]];
這顯示的字符串為home/tmp/picture。
@property (readonly, copy) NSArray<NSString *> *pathComponents;
將路徑字符串根據(jù)"/"分割,返回包含所有的字符串的數(shù)組。 例如“home/tmp/picture”將返回包含“home”,“tmp”和“picture”的字符串的數(shù)組。
@property (getter=isAbsolutePath, readonly) BOOL absolutePath;
判斷是否為絕對(duì)路徑。例如:“home/tmp/picture”不是絕對(duì)路徑,是相對(duì)路徑。 “/home/tmp/picture”為絕對(duì)路徑。
@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"執(zhí)行返回“home/tmp/picture.jpg”。
@property (readonly, copy) NSString *stringByAbbreviatingWithTildeInPath;
將路徑字符串中以NSHomeDirectory()開(kāi)始的,則NSHomeDirectory()部分替換為"~". 例如: “/Users/arthurwang/Library/Developer/CoreSimulator/Devices/3A7D67DC-0820-46BE-A567-53625AA03CD9/data/Containers/Data/Application/7DA5A209-A876-446F-966F-4FBD380E477F/test/picture” 會(huì)輸出“~/test/picture”。
@property (readonly, copy) NSString *stringByExpandingTildeInPath;
將“”或“*”展開(kāi)為NSHomeDirectory()內(nèi)容。例如: “/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;
返回標(biāo)準(zhǔn)的路徑,執(zhí)行的操作:(1)展開(kāi)“~”。 (2)路徑中“/private/var/automount/”,"/var/automount"或“/private”,如果移除這些路徑后,結(jié)果字符串為有效的存在的路徑,則移除。 (3)移除“//”和"/./"的路徑。 (4)如果為絕對(duì)路徑,那么".."解析為上一級(jí)的路徑。"."解析為當(dāng)前的路徑。
@property (readonly, copy) NSString *stringByResolvingSymlinksInPath;
解析絕對(duì)路徑中的符號(hào)鏈接,相對(duì)路徑不解析。
符號(hào)鏈接,又稱為軟連接,是一種特殊的符號(hào)。
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 又一次了解了路徑的處理。