路径工具类NSPathUtilities
路径工具类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、程序实例:
- //
- // main.m
- // NSPathUtilities.h
- //
- // Created by swinglife on 13-11-13.
- // Copyright (c) 2013年 swinglife. All rights reserved.
- //
- #import <Foundation/Foundation.h>
- int main(int argc, const charchar * argv[])
- {
- @autoreleasepool {
- NSString *fileName = @"testPath.java";
- NSString *path,*tempdir,*extension,*homedir,*fullpath;
- NSArray *components;
- NSFileManager *fm = [NSFileManager defaultManager];
- //获取临时的工作目录
- tempdir = NSTemporaryDirectory();
- NSLog(@"临时工作目录:%@",tempdir);
- //从当前目录中提取基本目录
- path = [fm currentDirectoryPath];
- NSLog(@"基础目录:%@",[path lastPathComponent]);
- //创建文件fileName在当前目录中得完整路径
- fullpath = [path stringByAppendingPathComponent:fileName];
- NSLog(@"%@完整路径:%@",fileName,fullpath);
- //获取文件扩展名
- extension = [fullpath pathExtension];
- NSLog(@"文件%@的扩展名是%@",fullpath,extension);
- //获取用户的主目录
- homedir = NSHomeDirectory();
- NSLog(@"用户主目录:%@",homedir);
- //拆分路径为各组成部分
- components = [homedir pathComponents];
- for (path in components) {
- NSLog(@"%@",path);
- }
- }
- return 0;
- }
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的更多相关文章
- 获取当前应用的系统路径工具类和java的System.getProperty()方法介绍
java的System.getProperty()方法可以获取的值,如下: 对于Java程序,无论是未打包的还是打包的JAR或WAR文件,有时候都需要获取它运行所在目录信息,如何做到这一点呢? /** ...
- Java 获取webapp,Root,classpath,项目等路径工具类
public class UtilPath { public static void main(String[] args) { String systemName = System.getPrope ...
- javascript 绝对路径工具类
// #region 取虚拟目录示例代码 //获取网站虚拟目录名称 function GetVirtualDirectoryName() { var pathname = removeFirstSla ...
- JDK中工具类的使用
JDK中内置了很多常用的工具类,且多以“s”结尾,如:集合工具类Collections,数组工具类Arrays,对象工具类Objects,文件工具类Files,路径工具类Paths,数学工具类Math ...
- Android 常用工具类之SPUtil,可以修改默认sp文件的路径
参考: 1. 利用Java反射机制改变SharedPreferences存储路径 Singleton1900 2. Android快速开发系列 10个常用工具类 Hongyang import ...
- Java中windows路径转换成linux路径等工具类
项目中发现别人写好的操作系统相关的工具类: 我总结的类似相关博客:http://www.cnblogs.com/DreamDrive/p/4289860.html import java.net.In ...
- Android4.4以上Uri转换成绝对路径的工具类
一.Android4.4版本以上Uri地址封装规范: content://com.android.providers.media.documents/document/image%3A659 二.An ...
- 【JDBC】学习路径5-提取JDBCUtils工具类
回顾我们上面几节的内容,我们发现重复代码非常多,比如注册驱动.连接.关闭close()等代码,非常繁杂. 于是我们将这些重复的大段代码进行包装.提取成JDBCUtils工具类. 第一章:提取注册连接模 ...
- [转]Java常用工具类集合
转自:http://blog.csdn.net/justdb/article/details/8653166 数据库连接工具类——仅仅获得连接对象 ConnDB.java package com.ut ...
随机推荐
- 【411】COMP9024 Assignment1 问题汇总
1. 构建 Makefile 文件后运行错误,undefined reference to 'sqrt' 实际上是没有链接math数学库,所以要 $gcc test.c –lm //-lm就是链接到m ...
- Html.PartialView(),html.Renderpartial,html.action.html.RenderAction 辅助方法
Html.Partial(), 返回HTML字符串 .参数为部分视图 html.RenderPartial(),不返回返回HTML字符串 ,直接输出响应流.参数为部分视图 一般用于主视图中已经存在了这 ...
- 关于jenkins的安装及自动部署
1. 安装Jenkins 1.1 准备Linux服务器, 关闭防火墙禁止开机启动 systemctl stop firewalld.service #停止firewall systemctl disa ...
- 适用于PHP初学者的学习线路和建议
[导读] 这篇文章是围绕PHP的学习问题,之前介绍过<重磅资料!Github上的PHP资源汇总大全><深入探讨PHP类的封装与继承><PHP的学习规划建议>等对PH ...
- bzoj 3503: [Cqoi2014]和谐矩阵【高斯消元】
如果确定了第一行,那么可以推出来整个矩阵,矩阵合法的条件是n+1行全是0 所以推出来n+1行和1行的关系,然后用异或高斯消元来解即可 #include<iostream> #include ...
- 【同步工具类】CountDownLatch
闭锁是一种同步工具类,可以延迟线程的进度直到其达到终止状态. 作用:相当于一扇门,在到达结束状态之前,这扇门一直是关闭的,并且没有任务线程能够通过,当到达结束状态时,这扇门会打开并允许所有的线程通过, ...
- python 关闭redis的连接
在python语言中使用redis时,没有找到对应的关闭的方法 try: self.redisconn = StrictRedisCluster(startup_nodes=self.redisNod ...
- 解决上传到github报错Successfully created project 'autotest' on GitHub, but initial commit failed:
通过IDEA上传代码到GitHub上可是有时候会碰到这样的问题. 当我们选择VCS->Import into Version Control->Share Project on GitHu ...
- 配置yum源的步骤(阿里源)
配置yum源的步骤1.可以移除默认的yum仓库,也就是删除 /etc/yum.repos.d/底下所有的.repo文件(踢出国外的yum源) 1.配置yum源,找到阿里云的官方镜像源地址 https: ...
- [BZOJ3531] Peaks加强版
Peaks Peaks 加强版 Description 在Bytemountains有N座山峰,每座山峰有他的高度h_i.有些山峰之间有双向道路相连,共M条路径,每条路径有一个困难值,这个值越大表示越 ...