路径工具类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 ...
随机推荐
- go语言godep使用命令
godep 看见他的star比govendor,所以我使用它.官方地址 https://github.com/tools/godep install 1 go get github.com/too ...
- str函数isdigit、isdecimal、isnumeric的区别
s为字符串s.isalnum() 所有字符都是数字或者字母s.isalpha() 所有字符都是字母s.isdigit() 所有字符都是数字s.islower() 所有字符都是小写s.isupper() ...
- light oj 1032(数位DP)
求一段区间中,每个十进制数所对应的二进制数中连续的1的个数之和. 设dp[i][0]代表长度为i的二进制数,首位为0,所含有的连续的1的个数之和. dp[i][1]代表长度为i的二进制数,首位为1,所 ...
- 使用slot分发内容 作用域插槽
除非子组件模板包含至少一个<slot>插口,否则父组件的内容将会别丢弃.当子组件模板只有一个没有属性的slot时,父组件整个内容片断将插入到slot所在的DOM位置,并替换掉slot标签本 ...
- 转载:NOR Flash擦写和原理分析
1. NOR FLASH 的简单介绍 NOR FLASH 是很常见的一种存储芯片,数据掉电不会丢失.NOR FLASH支持Execute On Chip,即程序可以直接在FLASH片内执行(这意味着存 ...
- 腾讯QQ空间应用宽屏接入
QQ 空间接入宽屏. (与腾讯微博分属两个不同平台) 相关文档: 流动应用画布说明 前端页面规范 多区多服场景说明 应用宽屏根据游戏分为两种. 1: 普通游戏,但想要实现宽屏显示. 2: 多区多服 ...
- UI: 网易新闻实现
#pragma mark-(AppDelegate.H文件)-------------------------------------------------------------------- ...
- WEB开发框架系列教程 (三)页面功能开发(2)
上一节介绍了,基础资料币别信息的开发,只通过辅助开发工具,创建及资料表,填写 表名,程序就完全好了. 最后也说到,可能我们也会面对另外一些基础资料信息的维护,但是不是简单到只有代码 和名称,可能还有另 ...
- win10下的jdk1.8安装
1 下载jdk 下一步就好 默认C盘最好 不要又中文 http://pan.baidu.com/s/1eSwvFA6(这里面有两个jdk 32位 64位) 看图 CLASSPATH: .;%JAVA ...
- linux更改用户名,域名(转载)
转自:http://huangro.iteye.com/blog/365975 1. 我们在root权限下,使用命令: usermod -l new_user_name old_user_name 即 ...