• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios路径操作http://www.tongwenguan.com/objective-c/objective-c-%E5%85%AD%E5%8D%81 ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

下面表格中的措施  可以用来操作  路径:

措施名称 描述
+(NSString *)pathWithComponents:components 用components创建有效的路径名称
-(NSArray *)pathComponents 将路径名称拆分成若干组成部分
-(NSString *)lastPathComponent 获取路径名称中最后一个组成部分
-(NSString *)pathExtension 获取路径名称中的扩展名(后缀名)
-(NSString *)stringByAppendingPathComponent:path 将path添加到已有的路径名称末尾
-(NSString *)stringByAppendingPathExtension:ext 将扩展名ext添加到已有的路径名称的最后一个组成部分的末尾
-(NSString *)stringByDeletingLastPathComponent 将已有的路径名称的最后一个组成部分删除
-(NSString *)stringByDeletingPathExtension 删除已有路径名称的扩展名
-(NSString *)stringByExpandingTildeInPath 将路径名称中的~字符展开
-(NSString *)stringByResolvingSymlinksInPath 解析路径名称中的符号链接
-(NSString *)stringByStandardizingPath 将路径名称标准化

下面表格中的函数  可以用来获取  用户名、用户的主目录路径  还有  临时目录路径:

函数名称 描述
NSString *NSUserName(void) 获取当前用户的登录名
NSString *NSFullUserName(void) 获取当前用户的全名
NSString *NSHomeDirectory(void) 获取当前用户的主目录路径
NSString *NSHomeDirectoryForUser(NSString *user) 获取用户user的主目录路径
NSString *NSTemporaryDirectory(void) 获取临时目录的路径

 

 

NSPathUtilities.h这个头文件  包含了  一些函数  和  类别。这些函数  和  类别  是  对NSString这类物件的扩展。你  可以用  这些函数  和  类别  来控制  路径名称。任何时候  只要可能  你  都应该使用  这些函数  和  类别,因为  这样做  可以使  你的程序  更少地  依赖  特定的文件系统结构  和  某些特定文件、目录的位置。下面的程序  示范了  如何使用  NSPathUtilities.h这个文件所提供的函数  和  措施:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#import <Foundation/NSArray.h>
 
#import <Foundation/NSString.h>
 
#import <Foundation/NSFileManager.h>
 
#import <Foundation/NSAutoreleasePool.h>
 
#import <Foundation/NSPathUtilities.h>
 
intmain(intargc,const char*argv[])
 
{
 
    NSAutoreleasePool*pool=[[NSAutoreleasePool alloc]init];
 
    NSString*fileName=@"main.m";
 
    NSFileManager*myFileManager;
 
    NSString*path,*temporaryDirectory,*extension,*homeDirectory,*fullPath;
 
    NSString*uPath=@"~/Desktop/Sample/Sample/main.m";
 
    NSArray*components;
 
    myFileManager=[NSFileManager defaultManager];
 
    //获取并且显示临时目录
 
    temporaryDirectory=NSTemporaryDirectory();
 
    NSLog(@"临时目录为:%@",temporaryDirectory);
 
    //从当前目录路径中获取基本目录
 
    path=[myFileManager currentDirectoryPath];
 
    NSLog(@"基本目录为:%@",[path lastPathComponent]);
 
    //获取文件main.m的完整路径
 
    fullPath=[pathstringByAppendingPathComponent:fileName];
 
    NSLog(@"完整路径为:%@",fullPath);
 
    //获取完整路径fullPath中的扩展名
 
    extension=[fullPath pathExtension];
 
    NSLog(@"扩展名为:%@",extension);
 
    //获取用户的主目录
 
    homeDirectory=NSHomeDirectory();
 
    NSLog(@"用户主目录为:%@",homeDirectory);
 
    //将用户的主目录路径拆分,并且分别显示出来
 
    components=[homeDirectory pathComponents];
 
    for(NSString*pathComponentin components)
 
    {
 
        NSLog(@"%@",pathComponent);
 
    }
 
    //将简略路径转换成标准路径
 
    NSLog(@"%@=>%@",uPath,[uPath stringByStandardizingPath]);
 
    [pool drain];
 
    return0;
 
}
 
 

2012-05-1513:18:05.917Sample[3418:707]临时目录为:/var/folders/l9/6375t2dn7wxftl7_rvxnh08r0000gn/T/

2012-05-1513:18:05.919Sample[3418:707]基本目录为:Debug
2012-05-1513:18:05.920Sample[3418:707]完整路径为:/Users/Zijin/Library/Developer/Xcode/DerivedData/Sample-bwtvtehgdvdkzgaqfkwvluuhrhso/Build/Products/Debug/main.m
2012-05-1513:18:05.920Sample[3418:707]扩展名为:m
2012-05-1513:18:05.921Sample[3418:707]用户主目录为:/Users/Zijin
2012-05-1513:18:05.922Sample[3418:707]/
2012-05-1513:18:05.923Sample[3418:707]Users
2012-05-1513:18:05.924Sample[3418:707]Zijin
2012-05-1513:18:05.925Sample[3418:707]~/Desktop/Sample/Sample/main.m=>/Users/Zijin/Desktop/Sample/Sample/main.m
Program ended with exit code:0
 
 

在这个程序当中  NSTemporaryDirectory()这个函数所产生的结果  是  临时目录的路径。在临时目录当中  你  可以创建  临时文件。如果  你  在临时目录当中  创建  文件,那么  你  必须保证  最后  将  临时文件  清理出去。同时  你  必须确保  你创建的文件之名称  是  独一无二的。

lastPathComponent这项措施  会将  其实施对象所代表的路径中  最后一个组成部分  读取出来。如果  其实施对象  为  路径“/Users/Zijin/Library/Developer/Xcode/DerivedData/Sample-bwtvtehgdvdkzgaqfkwvluuhrhso/Build/Products/Debug”,那么  最后产生的结果  就是  这个路径的最后一个组成部分,也就是  Debug。

stringByAppendingPathComponent:这项措施的实施对象  为  路径名称,而  其参数  则是  文件名称。这项措施的作用  是  将  文件名称  添加  到路径名称的结尾处。如果  这项措施的实施对象所代表的路径名称  不是  用斜杠结尾的,那么  这项措施  会  自动  在其实施对象所代表的路径名称之结尾处  加上  一个斜杠。利用  currentDirectory  和  stringByAppendingPathComponent:这两项措施  就可以得到  当前目录中任意一个文件的完整路径。

pathExtension这项措施  用来读取  其实施对象所代表的文件之扩展名。在这个程序中  pathExtension这项措施的实施对象  是  fullPath,fullPath代表的是  “/Users/Zijin/Library/Developer/Xcode/DerivedData/Sample-bwtvtehgdvdkzgaqfkwvluuhrhso/Build/Products/Debug/main.m”,那么  这项措施所产生的结果  就是  m。如果  这项措施的实施对象  没有  扩展名,那么  这项措施所产生的结果  就是  空字符串。

NSHomeDirectory()这个函数所产生的结果  为  当前用户的主目录。你  可以用  这个函数  来获取  任何一个特定用户的主目录,只要  在参数中  填上  那个用户的名称  就可以了。

pathComponents这项措施所产生的结果  为  NSArray类型的数组物件。这个数组物件  包含着  其实施对象所代表的路径之构成部分。在这个程序当中  pathComponents这项措施的实施对象  为  homeDirectory,也就是 当前用户的主目录路径。接着  用  快速枚举  将  当前用户主目录路径的构成部分  从components这个数组物件当中  依次  读取  并且  显示出来。

最后  uPath这个物件所代表的路径名称中  包含了  ~字符。在之前  我们  说过  适用于NSFileManager这类物件的措施  会接受  ~这个字符  来代替  当前用户的主目录  或者  用  ~用户名  来代表  某个特定用户的主目录。如果  某个路径名称  包含  ~这个字符,那么  可以对  这个路径名称  采取  stringByStandardizingPath这项措施,将  其  转换成  完整的路径名称。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Swift3.0之调用Objective-C第三方API发布时间:2022-07-12
下一篇:
Objective-C属性介绍发布时间:2022-07-12
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap