当我有目录路径、文件名和扩展名时,如何构建完整且安全的文件路径?

don*_*ile 5 filesystems objective-c nsstring ios

假设directoryPath指向应用程序的Documents目录:

NSString *fileName = @"demo";
NSString *extension = @"txt";
NSString *filePath = [directoryPath stringByAppendingPathComponent:fileName];
filePath = [filePath stringByAppendingPathExtension:extension];
Run Code Online (Sandbox Code Playgroud)

认为这是这样做的方法,但我不确定。也许还有更好的。首先我想也许我只是创建扩展名如下的文件名:

NSString *fileName = [NSString stringWithFormat:@"%@.%@", fileName, extension];
Run Code Online (Sandbox Code Playgroud)

然后使用 附加它-stringByAppendingPathComponent:,但我敢打赌由于某种原因这是一个坏主意。也许是因为它对扩展的点分隔符进行了硬编码。他们永远不会改变这一点,因为它会被扔得一塌糊涂。但你永远不知道。所以...

我做对了吗?

需要对旧操作系统版本的支持。

ser*_*gio 3

那这个呢?

NSString* fileNameExt = [NSString stringWithFormat:@"%@.%@", fileName, extension];
NSString *filePath = [directoryPath stringByAppendingPathComponent:fileNameExt];
Run Code Online (Sandbox Code Playgroud)