路径工具类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. js追加子元素

    在页面加载完毕后,向div元素追加span子元素 <html><head><title>js</title><script type=" ...

  2. Ueditor中代码的高亮和背景在前端页面的实现

    首先废话就不多说,这个富文本编辑器的下载和js等基本文件的导入略. 我的最终目标是这样的,我们在页面中的富文本框中输入代码,希望它能够被后台接受.存入数据库,当通过服务器将这些代码再一次显示在前台的页 ...

  3. codeforces912E(折半搜索+双指针+二分答案)

    E. Prime Gift E. Prime Gift time limit per test 3.5 seconds memory limit per test 256 megabytes inpu ...

  4. ionic2 中隐藏子页面tabs选项卡的三种方法

    第一种: 隐藏全部子页面的tabs选项界面 找到app.module.ts文件 ,修改如下代码 imports: [ IonicModule.forRoot(MyApp,{ tabsHideOnSub ...

  5. Fastjson详解

    Fastjson是一个Java语言编写的高性能功能完善的JSON库.它采用一种"假定有序快速匹配"的算法,把JSON Parse的性能提升到极致,是目前Java语言中最快的JSON ...

  6. git上拉取tag,识别最新tag在此版本上新增tag

    通过shell 脚本自动获取最新tag,并输入最新版本后,推到git上 # 拉取分支上现有的tags git fetch --tags echo -e "所有tag列表" git ...

  7. vultr 购买vps

    基本安装转自:https://github.com/uxh/shadowsocks_bash/wiki/Vultr%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B 连接 Vul ...

  8. #undef及其用法

    简    介 在后面取消以前定义的宏定义 在此程序中,我们将取消在先前程序中对预处理器的定义. #include <stdio.h> int main( void ) { #define ...

  9. ORA-01144_表空间数据文件超出最大限制

    Oracle11gR2扩展表空间报ORA-01144错误. 数据块大小为8K的数据库,单个数据文件大小限制在32GB内. 解决办法: 1.增加表空间数据文件的方式: 2.创建BIGFILE表空间:

  10. VS2010的一个错误,无法加载类型

    一个解决方案中的一个项目X,启动时总是报错,无法加载一个同一个解决方案中另一个项目A生成EXE中的数据类型. 做了如下的步骤解决问题. 1:检查项目A,未发现错误,调试启动A,一切正常. 2:检查项目 ...