路径工具类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. 【转】解决从jenkins打开robot framework报告会提示‘Opening Robot Framework log failed ’的问题

    最新的jenkins打开jenkins robot framework报告会提示如下 Verify that you have JavaScript enabled in your browser.  ...

  2. 杂项-Java-百科:jar

    ylbtech-杂项-Java-百科:jar 在软件领域,JAR文件(Java归档,英语:Java ARchive)是一种软件包文件格式,通常用于聚合大量的Java类文件.相关的元数据和资源(文本.图 ...

  3. 使用oracle的保留字作为字段名称并进行操作的方法

    项目中调取业主的数据库时发现,其中一个表的一个字段名为:update,所以当我用数据库查询语句进行查询的时候总会出错.从网上查询之后发现原来很简单,只要把update加上双引号就好了,例如: sele ...

  4. Application 效能分析有妙招 — 使用 perf 走天下(转载)

    转载:http://tech.mozilla.com.tw/posts/1803/application-%E6%95%88%E8%83%BD%E5%88%86%E6%9E%90-%E4%BD%BF% ...

  5. bzoj 3714: [PA2014]Kuglarz【最小生成树】

    参考:https://blog.csdn.net/aarongzk/article/details/48883741 没想到吧.jpg 来自题解: "如果用sum[i]表示前i个杯子底球的总 ...

  6. bzoj 3830: [Poi2014]Freight【dp】

    参考:https://blog.csdn.net/zqh_wz/article/details/52953516 妙啊 看成分段问题,因为火车只能一批一批的走(易证= =)设f[i]为到i为止的车都走 ...

  7. PHP 循环一个文件下的所有目录以及文件

    function test($dir) { //判断dir是否目录 if(is_dir($dir)) { $files = []; //列出 dir 目录中的文件和目录: $list = scandi ...

  8. codevs 4228 小猫爬山 【搜索】By cellur925

    题目描述 Description Freda和rainbow饲养了N只小猫,这天,小猫们要去爬山.经历了千辛万苦,小猫们终于爬上了山顶,但是疲倦的它们再也不想徒步走下山了(呜咕>_<). ...

  9. Ubuntu 18 安装 wps

    本来有三种方法 1. 软件中心 安装最简单 2. 命令行snap 安装 如果没有安装snap 先安装 sudo apt install snapd 然后安装wps sudo snap install ...

  10. Qt事件系统之一:Qt中的事件处理与传递

    一.简介 在Qt中,事件作为一个对象,继承自 QEvent 类,常见的有键盘事件 QKeyEvent.鼠标事件 QMouseEvent 和定时器事件 QTimerEvent 等,与 QEvent 类的 ...