iOS随笔之获取可用空间及某个文件或文件夹的大小及判断文件是否存在
2017-03-17 09:32
627 查看
iOS随笔之获取可用空间及某个文件或文件夹的大小
标签: path可用空间得到文件大小2014-03-05 14:43 895人阅读 评论(0) 收藏 举报
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/b367fdce88ee208da19a58e7fab01f44.jpg)
分类:
ios(20)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/b16356edc9d65f9de5798055c2b20c3c.jpg)
版权声明:本文为博主原创文章,未经博主允许不得转载。
最近要做一个下载视频的功能,要用到设备已用空间和剩余空间这个需求,在网上mark了下,自己实现了这几功能
1.获得设备剩余空间大小的方法
[objc] view
plain copy
print?
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
-(void)checkUsedDisk
{
NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask , YES) objectAtIndex:0];
NSFileManager *fileManager = [NSFileManager defaultManager];
NSDictionary *fileSysAttributes = [fileManager attributesOfFileSystemForPath:path error:nil];
NSNumber *freeSpace = [fileSysAttributes objectForKey:NSFileSystemFreeSize];
NSString *free = [NSString stringWithFormat:@"可用空间:<span style="font-family: Arial, Helvetica, sans-serif;">%.2fG",([freeSpace doubleValue])/1024.0/1024.0/1024.0];</span>
NSLog(@"free === \n%@",free);
}
2.获得单个文件以及文件夹大小的方法
[objc] view
plain copy
print?
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
//获得单个文件的大小
- (long long) fileSizeAtPath:(NSString*) filePath{
NSFileManager* manager = [NSFileManager defaultManager];
if ([manager fileExistsAtPath:filePath]){
return [[manager attributesOfItemAtPath:filePath error:nil] fileSize];
}
return 0;
}
//获得文件夹(遍历)的大小
- (float ) folderSizeAtPath:(NSString*) folderPath{
NSFileManager* manager = [NSFileManager defaultManager];
if (![manager fileExistsAtPath:folderPath]) return 0;
NSEnumerator *childFilesEnumerator = [[manager subpathsAtPath:folderPath] objectEnumerator];
NSString* fileName;
long long folderSize = 0;
while ((fileName = [childFilesEnumerator nextObject]) != nil){
NSString* fileAbsolutePath = [folderPath stringByAppendingPathComponent:fileName];
folderSize += [self fileSizeAtPath:fileAbsolutePath];
}
return folderSize/(1024.0*1024.0*1024.0);
}
如何得到文件或文件夹的路径呢。一般都在程序的Documents文件夹下,比如
NSString *usedPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/DownLoad"];
这就是Download文件夹的路径。
iOS-判断沙盒中是否已经存在文件
判断方法,类内方法://判断文件是否已经在沙盒中已经存在? -(BOOL) isFileExist:(NSString *)fileName { NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); NSString *path = [paths objectAtIndex:0]; NSString *filePath = [path stringByAppendingPathComponent:fileName]; NSFileManager *fileManager = [NSFileManager defaultManager]; BOOL result = [fileManager fileExistsAtPath:filePath]; NSLog(@"这个文件已经存在:%@",result?@"是的":@"不存在"); return result; }1
2
3
4
5
6
7
8
9
10
11
1
2
3
4
5
6
7
8
9
10
11
以上是判断cache文件夹,如果判断document文件将:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);1
2
1
2
替换为:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);1
1
即可。
相关文章推荐
- iOS随笔之获取可用空间及某个文件或文件夹的大小
- python 判断路径是文件还是文件夹、判断是否存在、获取文件大小
- JAVA之旅(二十八)——File概述,创建,删除,判断文件存在,创建文件夹,判断是否为文件/文件夹,获取信息,文件列表,文件过滤
- JAVA之旅(二十八)——File概述,创建,删除,判断文件存在,创建文件夹,判断是否为文件/文件夹,获取信息,文件列表,文件过滤
- C# 通过HttpWebRequest 创建连接获取文件大小 判断Http类型的文件是否存在
- 根据文件获取文件夹,判断文件夹是否存在,不存在则创建
- c++判断文件是否存在,判断是文件还是目录,获取文件大小,获取程序所在路径
- 28先判断是否存在,再创建文件夹或文件,递归计算文件夹大小
- C#获取FTP目录下文件夹、文件的方法,进而判断FTP下指定文件夹是否存在
- ios判断程序文件夹下是否存在指定文件
- C++ 获取文件夹内的文件名,判断文件(夹)是否存在的两个函数
- 判断文件或文件夹是否存在
- C#中判断文件或文件夹是否存在
- C/C++判断文件/文件夹是否存在
- ASP.net 2.0 C#判断文件夹与文件是否存在
- ASP.net 2.0 C#判断文件夹与文件是否存在
- 上传文件时判断文件夹是否存在
- C++文件操作 判断文件是否存在和文件大小
- C# 判断文件和文件夹是否存在
- C#判断文件及文件夹是否存在并创建