查询当前设备的总空间 剩余空间 用户占用空间
来源:互联网 发布:淘宝女装折扣店 编辑:程序博客网 时间:2024/06/05 20:42
有我们需要知道设备磁盘的总空间 剩余空间 以及用户自己占用的空间
#include <sys/param.h>
#include <sys/mount.h>
//获取剩余磁盘空间
- (NSString *) freeDiskSpaceInBytes{
struct statfs buf;
long long freespace = -1;
if(statfs("/var", &buf) >=0){
freespace = (float)(buf.f_bsize * buf.f_bfree);
}
return [NSStringstringWithFormat:@"手机剩余存储空间为:%qi MB" ,freespace/1024/1024];
}
//获取总的磁盘空间 1
- (NSString *) totalDiskSpaceInBytes{
float totalSpace = 0.0f;
NSError *error = nil;
NSArray *paths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSDictionary *dictionary = [[NSFileManagerdefaultManager] attributesOfFileSystemForPath:[pathslastObject] error: &error];
if (dictionary) {
NSNumber *fileSystemSizeInBytes = [dictionary objectForKey: NSFileSystemSize];
totalSpace = [fileSystemSizeInBytesfloatValue];
}else {}
return [NSStringstringWithFormat:@"%0.2f MB" ,totalSpace/1024/1024];
}
//获取总的磁盘空间 2
- (NSString *)getTotalDiskSpaceInBytes
{
NSArray *paths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
struct statfs tStats;
statfs([[paths lastObject] cStringUsingEncoding:NSUTF8StringEncoding], &tStats);
float totalSpace = (float)(tStats.f_blocks * tStats.f_bsize)/1024/1024;
float freeSpace = (float)(tStats.f_ffree * tStats.f_bsize)/1024/1024;
return [NSStringstringWithFormat:@"%f,%f",totalSpace,freeSpace];
}
//获取用户占用磁盘空间
- (NSString *) usersSpaceInBytes{
NSArray *paths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *userpaths = [[paths lastObject] substringToIndex:([[paths lastObject] length] - 10)];
NSLog(@"%f",[selffolderSizeAtPath:userpaths]);
}
//单个文件的大小
- (longlong) fileSizeAtPath:(NSString*) filePath{
NSFileManager* manager = [NSFileManagerdefaultManager];
if ([manager fileExistsAtPath:filePath]){
return [[managerattributesOfItemAtPath:filePath error:nil]fileSize];
}
return 0;
}
//遍历文件夹获得文件夹大小,返回多少M
- (float ) folderSizeAtPath:(NSString*) folderPath{
NSFileManager* manager = [NSFileManagerdefaultManager];
if (![manager fileExistsAtPath:folderPath])return 0;
NSEnumerator *childFilesEnumerator = [[managersubpathsAtPath:folderPath] objectEnumerator];
NSString* fileName;
long long folderSize =0;
int i = 0;
while ((fileName = [childFilesEnumerator nextObject]) != nil){
i ++;
NSString* fileAbsolutePath = [folderPath stringByAppendingPathComponent:fileName];
folderSize += [selffileSizeAtPath:fileAbsolutePath];
}
return folderSize/(1024.0*1024.0);
}
- 查询当前设备的总空间 剩余空间 用户占用空间
- ASM 剩余空间查询
- 剩余表空间查询
- 查询表空间剩余空间百分比的错误方法纠正
- ORACLE ASM中查询表空间使用情况、数据文件路径、裸设备磁盘总大小剩余大小
- 查询sybase数据库剩余空间
- oracle查询表空间的空间占用情况
- oracle查询表空间的空间占用情况
- oracle查询表空间的空间占用情况
- oracle表空间总大小 剩余大小
- 有关获取磁盘剩余空间及总空间
- 查询表占用的空间大小
- 查询表占用的空间大小
- oracle查询数据表占用空间的大小
- 查询oracle数据库表空间的大小,已使用空间,剩余空间
- 查询oracle数据库表空间的大小,已使用空间,剩余空间
- iOS获取文件夹中存储空间的大小、手机剩余空间大小、手机总空间大小 工具
- 查询数据库表空间占用
- 基于visual Studio2013解决C语言竞赛题之1093连接链表
- 冒泡排序(改良)
- cocos2dx 碰撞
- oracle练习1-删除scott用户,并重建
- iOS7中改变导航栏的标题
- 查询当前设备的总空间 剩余空间 用户占用空间
- java.sql.SQLException: Io 异常:The Network Adapter could not establish the connect
- 相似图片搜索的原理
- 解决OutOfMemorError(内存不足)的方法
- TOJ 1005
- 设计模式(九)外观模式Facade(结构型)
- JXNUOJ_1925:特殊排序
- oracle 游标
- TCP/IP、Http、Socket的区别