黑马程序员技术交流社区

标题: stringByAppendingPathComponent和stringByAppendingString的区别 [打印本页]

作者: muzipiao    时间: 2016-4-8 13:29
标题: stringByAppendingPathComponent和stringByAppendingString的区别
在研究NSFileManager的时候,涉及到文件路径,发现stringByAppendingPathComponent和stringByAppendingString的输出结果一样例如:
  1. NSString *homeDir=NSHomeDirectory();
  2.         NSString *desktopTxt= [NSHomeDirectory() stringByAppendingPathComponent:@"/Desktop/test.txt"];
  3.         NSString *desktopTxt2=[NSHomeDirectory() stringByAppendingString:@"/Desktop/test2.txt"];
  4.         
  5.         NSLog(@"homeDir=%@",homeDir);
  6.         NSLog(@"desktopTxt=%@",desktopTxt);
  7.         NSLog(@"desktopTxt2=%@",desktopTxt2);
复制代码
输出结果一样,都是:
  1. 2016-04-08 13:15:41.365 文件管理[1280:82126] homeDir=/Users/lf
  2. 2016-04-08 13:15:41.365 文件管理[1280:82126] desktopTxt=/Users/lf/Desktop/test.txt
  3. 2016-04-08 13:15:41.365 文件管理[1280:82126] desktopTxt2=/Users/lf/Desktop/test2.txt
  4. Program ended with exit code: 0
复制代码
仔细研究发现,stringByAppendingPathComponent会判断字符串,自动转换为路径,例如:
  1. NSString *desktopTxt= [NSHomeDirectory() stringByAppendingPathComponent:@"Desktop/test.txt"];
复制代码
字符串前面不加“/”,输出结果一样,仍旧为路径
  1. 2016-04-08 13:15:41.365 文件管理[1280:82126] desktopTxt=/Users/lf/Desktop/test.txt
复制代码
如果是stringByAppendingString少了“/”,则输出结果为:
  1. 2016-04-08 13:25:52.988 文件管理[1293:87318] desktopTxt2=/Users/lfDesktop/test2.txt
复制代码
路径不正确了。









欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2