路径工具类NSPathUtilities.h

路径类NSPathUtilities.h包含了 NSString的函数和分类扩展,他允许你操作路径名。
应该竟可能的使用这些函数,以便使程序更独立于文件系统结构及特定文件和目录的位置

NSPathUtilities.h常用的方法
+(NSString*)pathWithComponents:components 根据components中得元素构造有效路径
-(NSArray*)pathComponents 析构路径,获得组成此路径的各个部分

-(NSString*)lastPathComponent 提取路径的最后一个组成部分

-(NSString*)pathExtension 从路径的最后一个组成部分中提取其扩展名

-(NSString*)stringByAppendingPathComponent:path 将path添加到现有路径的末尾

-(NSString*)stringByDeletingLastPathComponent 删除路径的最后一个组成部分

-(NSString*)stringByDeletingPathExtension 从文件的最后一部分删除扩展名

-(NSString*)stringByExpandingTildeInPath 将路径中得代字符扩展成用户主目录(~)或指定用户的主目录(~user)

-(NSString*)stringByResolvingSymlinksInPath 尝试解析路径中的符号链接

-(NSString*)stringbyStandardizingPath 通过尝试解析~、..、.、和符号链接来标准化路径

系统路径函数

NSString *NSUserName(void) 返回当前用户的登录名

NSString *NSFullUserName(void) 返回当前用户的完整用户名

NSString *NSHomeDirectory(void) 返回当前用户主目录的路径

NSString *NSHomeDirectoryForUser(NSString *user) 返回用户user的主目录

NSString *NSTemporaryDirectory(void) 返回可用于创建零时文件的路径目录

1、程序实例:

  1. //
  2. //  main.m
  3. //  NSPathUtilities.h
  4. //
  5. //  Created by swinglife on 13-11-13.
  6. //  Copyright (c) 2013年 swinglife. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. int main(int argc, const charchar * argv[])
  10. {
  11. @autoreleasepool {
  12. NSString *fileName = @"testPath.java";
  13. NSString *path,*tempdir,*extension,*homedir,*fullpath;
  14. NSArray *components;
  15. NSFileManager *fm = [NSFileManager defaultManager];
  16. //获取临时的工作目录
  17. tempdir = NSTemporaryDirectory();
  18. NSLog(@"临时工作目录:%@",tempdir);
  19. //从当前目录中提取基本目录
  20. path = [fm currentDirectoryPath];
  21. NSLog(@"基础目录:%@",[path lastPathComponent]);
  22. //创建文件fileName在当前目录中得完整路径
  23. fullpath = [path stringByAppendingPathComponent:fileName];
  24. NSLog(@"%@完整路径:%@",fileName,fullpath);
  25. //获取文件扩展名
  26. extension = [fullpath pathExtension];
  27. NSLog(@"文件%@的扩展名是%@",fullpath,extension);
  28. //获取用户的主目录
  29. homedir = NSHomeDirectory();
  30. NSLog(@"用户主目录:%@",homedir);
  31. //拆分路径为各组成部分
  32. components = [homedir pathComponents];
  33. for (path in components) {
  34. NSLog(@"%@",path);
  35. }
  36. }
  37. return 0;
  38. }

Foundation函数NSSearchPathForDirectoriesInDomains它可用于查找系统的特殊目录

,如Application和Documents目录。列如:定义一个方法saveFilePath, 它返回文件saveFile在
Documents目录中的路径。这个方法可以用于应用里保存一些数据到文件中

-(NSString*)saveFilePath{
NSArray *dirList = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSuserDomainMask,YES);
NSString *docDir = [dirList objectAtIndex:0];
return [docDir stringByAppendingPathComponent:@"saveFile"];
}

当为ios编写程序时,NSSearchPathForDirectoriesInDomains函数的第二个参数应该是NSuserDomainMask并希望得到一个包含单个路径的数组作为返回

IOS常用目录:
Documents(NSDocumentDirectory) 用于写入应用相关数据文件的目录。在IOS中写入这里的文件能够与Itunes共享并访问,存储在这里的文件会自动备份到云端。

Library/Caches(NSCachesDirectory) 用于写入应用支持文件的目录,保存应用程序再次启动需要的信息,iTunes不会对这个目录的内容进行备份.

tmp(use NSTemporaryDirectory()) 这个目录用于存放零时文件,在程序终止时需要移除这些文件,当应用程序不再需要这些零时文件是,应该将其从这个目录中删除

Library/Preferences 这个目录包含应用程序的偏好设置文件,使用NSUserDefaults类进行偏好设置文件的创建、读取、和修改。

路径工具类NSPathUtilities的更多相关文章

  1. 获取当前应用的系统路径工具类和java的System.getProperty()方法介绍

    java的System.getProperty()方法可以获取的值,如下: 对于Java程序,无论是未打包的还是打包的JAR或WAR文件,有时候都需要获取它运行所在目录信息,如何做到这一点呢? /** ...

  2. Java 获取webapp,Root,classpath,项目等路径工具类

    public class UtilPath { public static void main(String[] args) { String systemName = System.getPrope ...

  3. javascript 绝对路径工具类

    // #region 取虚拟目录示例代码 //获取网站虚拟目录名称 function GetVirtualDirectoryName() { var pathname = removeFirstSla ...

  4. JDK中工具类的使用

    JDK中内置了很多常用的工具类,且多以“s”结尾,如:集合工具类Collections,数组工具类Arrays,对象工具类Objects,文件工具类Files,路径工具类Paths,数学工具类Math ...

  5. Android 常用工具类之SPUtil,可以修改默认sp文件的路径

    参考: 1. 利用Java反射机制改变SharedPreferences存储路径    Singleton1900 2. Android快速开发系列 10个常用工具类 Hongyang import ...

  6. Java中windows路径转换成linux路径等工具类

    项目中发现别人写好的操作系统相关的工具类: 我总结的类似相关博客:http://www.cnblogs.com/DreamDrive/p/4289860.html import java.net.In ...

  7. Android4.4以上Uri转换成绝对路径的工具类

    一.Android4.4版本以上Uri地址封装规范: content://com.android.providers.media.documents/document/image%3A659 二.An ...

  8. 【JDBC】学习路径5-提取JDBCUtils工具类

    回顾我们上面几节的内容,我们发现重复代码非常多,比如注册驱动.连接.关闭close()等代码,非常繁杂. 于是我们将这些重复的大段代码进行包装.提取成JDBCUtils工具类. 第一章:提取注册连接模 ...

  9. [转]Java常用工具类集合

    转自:http://blog.csdn.net/justdb/article/details/8653166 数据库连接工具类——仅仅获得连接对象 ConnDB.java package com.ut ...

随机推荐

  1. baiduTemplate 基本知识总结

    html <div id="tem1"></div> <div id="tem2"></div> <!-- ...

  2. Groupby 方法语法

    对序列进行分类汇总,汇总后产生的序列的key就是按照某个字段汇总的项 .groupby select Viewmodel三者常一起使用,用于统计.groupby 方法语法常与select 子句形成数据 ...

  3. 08_传智播客iOS视频教程_Foundation框架

    比如产生随机数.这个功能要你写吗?不用,因为苹果已经写好了.后面想开发一个ios程序,往界面上放一个按钮,实际上这个按钮不用你写别人已经写好了,你就拿过来拖一下就可以了. 框架是1个功能集 苹果或者第 ...

  4. vs2008添加消息函数方法

    开发MFC时,开发工具VS2008不能像开发工具VC++6.0那样,直接在类文件上右击选择“Add Window Message Handles”来添加消息映射.对于我这个初学者,刚开始一直没找到可以 ...

  5. Mysql数据库介绍、安装和配置文件

    Mysql数据库介绍.安装和配置文件 MySQL数据库介绍 mysql是开源关系型数据库,遵循GPL协议. mysql的特点是性能卓越且服务稳定,开源,无版本限制,成本低,单进程多线程,多用户,基于C ...

  6. 简单粗暴解决google被和谐导致google fonts无法加载的问题

    原文:http://www.v2ex.com/t/118403 解决方法:fonts.googleapis.com替换为fonts.useso.com, fonts.useso.com是360安全卫士 ...

  7. (转)Javascript中console.log()用法

    原文地址应该是这个吧:http://my.oschina.net/junn/blog/142728 注意:必须要提前打开IE的开发者模式才能看到输入 否则就会报错. IE下可以这个判断: if (co ...

  8. 我的周记5——"侵略如火,不动如山"

    这周发生的事儿 最近同事晋升的参加答辩,还有的同事要转岗走了.难受... 有时候自己常常想,我是不是应该也要走了. 这儿的人好优秀呀,又舍不得离开.但是这里太安逸了,接触不到技术,靠自学呢 又感觉力不 ...

  9. DecimalFormat数字格式化用法“0”和“#”的区别

    1. 以“0”补位时: 如果数字少了,就会补“0”,小数和整数都会补: 如果数字多了,就切掉,但只切小数的末尾,整数不能切: 同时被切掉的小数位会进行四舍五入处理. 2. 以“#”补位时: 如果数字少 ...

  10. Ubuntu下如何用命令运行deb安装包

    转载自 WindTaiL的博客 如果ubuntu要安装新软件,已有deb安装包(例如:iptux.deb),但是无法登录到桌面环境.那该怎么安装?答案是:使用dpkg命令. dpkg命令常用格式如下: ...