美文网首页
iOS中文件操作(NSFileManager)相对路径

iOS中文件操作(NSFileManager)相对路径

作者: 野咪咕 | 来源:发表于2018-11-02 17:18 被阅读34次

分享来的文档存在沙盒的Documents/Inbox路径下:

/var/mobile/Containers/Data/Application/151DF2B1-576C-42B5-8F5D-051132FF2494/Documents/Inbox/%3F%3F%20Microsoft%20Word%20%3F%3F%20(2)-1.docx这个文件

这个文件是存在的,但是用我想计算文档大小,用如下方法

NSFileManager *fileManager = [NSFileManager defaultManager];

    if([fileManagerfileExistsAtPath:localPath]) {

        size = [[fileManagerattributesOfItemAtPath:localPath error:nil] fileSize];

    }总是返回NO,文件不存在

Application/ 后面那一串,应用每次运行都会变的..........................................................

------解决办法

iOS的app都是沙盒,只能访问自己app下的目录。你的app这一串151DF2B1-576C-42B5-8F5D-051132FF2494是会发生变化的。所以要通过相对路径获取。参考代码如下:

获取Documents目录

NSArray *pathArray = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

// 这个documentDirectory就是你的/var/mobile/Containers/Data/Application/151DF2B1-576C-42B5-8F5D-051132FF2494/Documents/目录了

NSString *documentDirectory = [pathArray firstObject];

NSFileManager *fileManager = [NSFileManager defaultManager];

NSString *localPath = [documentDirectory stringByAppendingPathComponent:@"/Inbox/%3F%3F%20Microsoft%20Word%20%3F%3F%20(2)-1.docx"];

if([fileManager fileExistsAtPath:localPath]) {

    size = [[fileManager attributesOfItemAtPath:localPath error:nil] fileSize];

}

----------------------------------------------------------------------------------------------------------

//目录结构:

------AppName.app

------Documents

------Library

      ----------Caches

      ----------Preferences

------tmp

------

Documents: 用于存储用户数据或其它应该定期备份的信息

Preferences : 应用程序的偏好设置文件

Caches : 保存应用程序再次启动过程中需要的信息。您的应用程序通常需要负责添加和删除这些文件,

但在对设备进行完全恢复的过程中,iTunes会删除这些文件

tmp : 存放临时文件,保存应用程序再次启动过程中不需要的信息

获取各个 路径

-----------Documents : 

NSString* documentsDirectory = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];

    NSLog(@"documentsDirectory----%@\n\n",documentsDirectory);

或者NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);NSString *documentsDirectory1 = [paths objectAtIndex:0];

----------Library 

NSString* LibraryDirectory = [NSHomeDirectory() stringByAppendingPathComponent:@"Library"];

或者NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask, YES);

 NSString *LibraryDirectory1 = [paths objectAtIndex:0];

-----------Cache

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask, YES);NSString *documentsDirectory1 = [paths objectAtIndex:0];

----------test.app

NSString *str = [[NSBundle mainBundle] resourcePath];

    NSLog(@"str---%@\n\n",str);

 ///你所导入的文件就放在这里,文章开头已经说了如何获取其路径

----------获取 根目录

NSHomeDirectory();

相关文章

  • iOS中文件操作(NSFileManager)相对路径

    分享来的文档存在沙盒的Documents/Inbox路径下: /var/mobile/Containers/Dat...

  • OC基础—文件管理者

    iOS中NSFileManager文件常用操作整合 前言:"在Objective-C的编程过程当中,常常会涉及到对...

  • IOS文件管理

    文件操作 NSFileManager 1.NSFileManager 专门负责文件/文件夹的管理操作,包括创建/删...

  • iOS 文件操作(NSFileManager)

    iOS的沙盒机制,应用只能访问自己应用目录下的文件。iOS不像Android,没有SD卡概念,不能直接访问图像、视...

  • iOS NSFileManager文件操作

    NSFileManager是一个单例类,也是一个文件管理器。可以通过NSFileManager创建文件夹、创建文件...

  • NSFileManager

    NSFileManager NSFileManager是iOS中的文件管理类 一、生成一个路径 这是NSStrin...

  • Mac os - 文件操作坑点

    做文件操作的时候必须设置以下权限: 然后文件操作就更iOS里面一样了。 使用NSFileManager 需要注意,...

  • iOS资源

    iOS开发200个tips总结(一) iOS开发200个tips总结(二) iOS中NSFileManager文件...

  • iOS NSFileManager初探

    iOS NSFileManager初探 使用NSFileManager 文件系统接口 允许访问文件夹内容 创建,重...

  • iOS中NSFileManager文件常用操作整合

    原文出处 http://blog.csdn.net/feng2qing/article/details/54974...

网友评论

      本文标题:iOS中文件操作(NSFileManager)相对路径

      本文链接:https://www.haomeiwen.com/subject/zkpcxqtx.html