tener - liberar espacio sistema iphone
Cómo obtener el tamaño de almacenamiento de aplicaciones mediante programación en iPhone (3)
A menos que el dispositivo tenga jailbreak, no podrá acceder a cada carpeta de la aplicación mediante programación.
Esto se debe a que cada aplicación iOS funciona en un entorno de espacio aislado, lo que significa que su aplicación SOLO puede acceder a los activos dentro de este directorio. Si el dispositivo tiene jailbreak, este requisito se elimina y se le otorga acceso completo al disco del dispositivo.
Quiero obtener los tamaños de almacenamiento de cada aplicación en iPhone a través del objetivo C.
Cualquier ayuda para conseguir así ...
Suponiendo que está desarrollando para un dispositivo con jailbreak (si no es así, es imposible acceder a las aplicaciones en el dispositivo), el SpringBoard debe tener métodos predefinidos para acceder a los metadatos de todas las aplicaciones instaladas. Si observa los encabezados de SBApplication.h, hay métodos para obtener los metadatos.
NSString *folderPath = "give application path here"
Ejemplo: NSString * folderPath = @ "/ private / var / mobile / Applications / 2B63FD7F-2082-415D-A00C-F07C4BE281AA / Example.app";
NSArray *filesArray = [[NSFileManager defaultManager] subpathsOfDirectoryAtPath:folderPath error:nil];
NSEnumerator *filesEnumerator = [filesArray objectEnumerator];
NSString *fileName;
unsigned long long int fileSize = 0;
while (fileName = [filesEnumerator nextObject])
{
NSDictionary *fileDictionary = [[NSFileManager defaultManager] fileAttributesAtPath:[folderPath stringByAppendingPathComponent:fileName] traverseLink:YES];
NSLog(@" fileDictionary %@",fileDictionary);
fileSize += [fileDictionary fileSize];
}
NSLog(@" App Name and App size: %@ : %lld", folderPath,fileSize);
Si desea buscar el tamaño de todas las aplicaciones, tome la ruta de todas las aplicaciones en una matriz y escriba la instrucción de bucle para la ruta de la carpeta.
NSArray *applicationsPath="Here array contain all applications path"
for (int i=0; i<applicationPath.count; i++)
{
NSString *folderPath = [applicationPath objectAtIndex:i]
NSArray *filesArray = [[NSFileManager defaultManager] subpathsOfDirectoryAtPath:folderPath error:nil];
NSEnumerator *filesEnumerator = [filesArray objectEnumerator];
NSString *fileName;
unsigned long long int fileSize = 0;
while (fileName = [filesEnumerator nextObject])
{
NSDictionary *fileDictionary = [[NSFileManager defaultManager] fileAttributesAtPath:[folderPath stringByAppendingPathComponent:fileName] traverseLink:YES];
NSLog(@" fileDictionary %@",fileDictionary);
fileSize += [fileDictionary fileSize];
}
NSLog(@" App Name and App size: %@ : %lld", folderPath,fileSize);
}