Object-C,文件路径API

犀利吐槽

1.同样都是“文件和目录操作",java中,就用java.util.File一个类,就封装了很多API,而Object-C搞了这么多类和函数。具体原因,有待分析啊。

2.明明是NSString,字符串操作,怎么出现了”pathComponents“等操作文件路径相关的方法,很奇怪的赶脚。

3.stringByAppendingString,这函数的名字有点长啊。

4.总体感觉,Object-C的语法比Java复杂一些,码代码的效率低了不少。

/

/
//  main.m
//  FilePathUtil
//
//  Created by fansunion on 15/11/29.
//  Copyright (c) 2015年 demo. All rights reserved.
//

#import <Foundation/Foundation.h>

//演示文件路径API
int main(int argc, const char * argv[]) {
    @autoreleasepool {
       NSString *fileName [email protected]"path.m";
        NSFileManager *fm;
        NSString *path,*tempDir,*extention,*homeDir,*fullPath;
        NSArray *components;

        fm =[NSFileManager defaultManager];
        //临时目录
        tempDir = NSTemporaryDirectory();
        NSLog(@"The tempDir is %@",tempDir);

        //提取基本目录
        path =[fm currentDirectoryPath];
        NSLog(@"The base dir is %@",[path lastPathComponent]);

        //fileName在当前目录中的完整路径
        //这个地方有个问题
        //本地输出”/Users/fansunion/Library/Developer/Xcode/DerivedData/FilePathUtil-bvzjqehotbexooebruphtwcmqekz/Build/Products/Debugpath.m“
        //Debug和path.m之间没有”分隔符“/",而书本中的例子是有的
        //最好还是手动加上,Java中也是没有这个分隔符,需要手动加上的
        fullPath =[path stringByAppendingString:fileName];
        NSLog(@"The fullPath is %@",fullPath);

        //获得文件扩展名
        extention = [fullPath pathExtension];
        NSLog(@"The extentions is %@",extention);

        //获得用户的主目录
        homeDir = NSHomeDirectory();
        NSLog(@"The home directory is %@",homeDir);

        //拆分路径为各个组成部分
        components = [homeDir pathComponents];
        for(path in components){
            NSLog(@"%@",path);
        }
    }
    return 0;
}

程序输出

2015-11-29 13:43:30.550 FilePathUtil[2861:179163] The tempDir is /var/folders/4q/5ylpds9n5n97bq_r41qvly4w0000gn/T/

2015-11-29 13:43:30.551 FilePathUtil[2861:179163] The base dir is Debug

2015-11-29 13:43:30.551 FilePathUtil[2861:179163] The fullPath is /Users/fansunion/Library/Developer/Xcode/DerivedData/FilePathUtil-bvzjqehotbexooebruphtwcmqekz/Build/Products/Debugpath.m

2015-11-29 13:43:30.551 FilePathUtil[2861:179163] The extentions is m

2015-11-29 13:43:30.552 FilePathUtil[2861:179163] The home directory is /Users/fansunion

2015-11-29 13:43:30.552 FilePathUtil[2861:179163] /

2015-11-29 13:43:30.552 FilePathUtil[2861:179163] Users

2015-11-29 13:43:30.553 FilePathUtil[2861:179163] fansunion

Program ended with exit code: 0

时间: 2024-10-21 01:43:48

Object-C,文件路径API的相关文章

文件路径获取目录API

总有这样一个API被人遗忘在角落, 从文件路径获取目录名: Desc:Removes the trailing file name and backslash from a path, if it has them. Syntax: BOOL PathRemoveFileSpec( LPTSTR pszPath) HEADR:shlwapi.h TCHAR PathStr[MAX_PATH]; GetModuleFileName(NULL, PathStr, MAX_PATH); PathRem

HTML5 文件拖放API讲解

本章向大家讲解一下HTML 5中文件API与拖放API的使用方法.HTML5的文件API,可以在浏览器中直接显示客户端文件的信息或文件中的内容,而通过拖放API,可以直接将位于客户端中的文件拖动到浏览器中,也可以单独拖动页面中的元素或者元素中的内容. HTML5拖拽文件预览效果图: 在线演示 以前,我们使用file控件,单击上传按钮后选择计算机中的文件.在HTML5中,我们可以先将计算机中的文件直接拖动到浏览器中进行预览,确定文件是我们所需要的,然后单击上传按钮将该文件上传到服务器端. 我们使用

C语言 文件操作API介绍

文件的基本概念 所谓“文件”是指一组相关数据的有序集合. 这个数据集有一个名称,叫做文件名. 实际上在前面的各章中我们已经多次使用了文件,例如源程序文件.目标文件.可执行文件.库文件 (头文件)等.文件通常是驻留在外部介质(如磁盘等)上的, 在使用时才调入内存中来.从不同的角度可对文件作不同的分类.从用户的角度看,文件可分为普通文件和设备文件两种. 普通文件是指驻留在磁盘或其它外部介质上的一个有序数据集,可以是源文件.目标文件.可执行程序:也可以是一组待输入处理的原始数据,或者是一组输出的结果.

Java文件路径

几大常用的方法 Class.getResource("")    返回的是当前Class这个类所在包开始的位置 getClassLoader().getResource("")  ||   Class.getResource("/")   返回的是classpath的位置 getClassLoader().getResource("/")  错误的!! 注: CLASSPATH是什么?它的作用是什么? 它是javac编译器的一

python中关于本地文件的API

Python中关于本地文件的API */--> Python中关于本地文件的API #TITLE: python中关于本地文件的API #KEYWORDS: Python,文件,路径 #DATE: Fri Jul 1 21:24:04 2016 在Python中,文件操作主要来自os模块,主要方法如下: 函数 描述 os.listdir(dirname) 列出dirname下的目录和文件 os.getcwd() 获得当前工作目录 os.curdir 返回当前目录('.') os.chdir(di

js上传文件带参数,并且,返回给前台文件路径,解析上传的xml文件,存储到数据库中

ajaxfileupload.js jQuery.extend({ createUploadIframe: function(id, uri) { //create frame var frameId = 'jUploadFrame' + id; if(window.ActiveXObject) { var io = document.createElement('<iframe id="' + frameId + '" name="' + frameId + '&qu

[其他]Android SDK离线文件路径以及安装更新方法

一.离线安装Android SDK文件路径 转载自:http://www.oschina.net/code/snippet_1539302_45940 Google TV Addon, Android API13, revision 1 https://dl-ssl.google.com/android/repository/google_tv-13_r01.zip Android SDK Platform-tools,revision 21 [*] http://dl-ssl.google.c

C# : 操作Word文件的API - (将C# source中的xml注释转换成word文档)

这篇博客将要讨论的是关于: 如何从C#的source以及注释, 生成一份Word格式的关于各个类,函数以及成员变量的说明文档. 他的大背景如下...... 最近的一个项目使用C#, 分N个模块, 在项目的里程碑的时候, 日本的总公司要检查我们的成果物. 成果物包括源代码, 概要设计式样书(SD,System Design), 详细设计式样书(PD, Program Design), 自动化测试等等. 源代码必须要符合编码规范(每个函数都要有注释, 方法变量的命名规则等...) 这些检查都很正常,

Atitit.论垃圾文件的识别与清理&#160;文档类型垃圾文件&#160;与api概要设计pa6.doc

Atitit.论垃圾文件的识别与清理 文档类型垃圾文件 与api概要设计pa6.doc 1. 俩个问题::识别垃圾文件与清理策略1 1.1. 文件类型:pic,doc,v,m cc,isho pose,prj,codelib,doc mana(inputmethod,acc)1 2. 如何识别垃圾文件2 2.1. 体积过小文件2 2.2. 过大文件2 2.3. 清理非文档类型(doc docx txt html )的文件2 2.4. 转换文件类型以及索引html即可2 2.5. 清理重复文件(此