フレームワークとともにiPhoneアプリのサイズを見つけることに取り組んでいますが、これを行う方法が見つかりませんでした.誰かが私にこれのコードを提供できますか? 実行中にアプリの現在のメモリ使用量を見つけるコードを取得しました。
質問する
1469 次
3 に答える
1
NSString *folderPath = [[NSBundle mainBundle] bundlePath];
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];
fileSize += [fileDictionary fileSize];
}
NSLog(@"App size : %lld",fileSize);
于 2012-07-31T07:25:20.633 に答える
0
誰かがまだ答えを探している場合: fileAttributesAtPath メソッドは減価償却されているので、 attributesOfItemAtPath メソッドを使用してください
例:
//get full pathname of bundle directory
NSString *bundlePath = [[NSBundle mainBundle] bundlePath];
//get paths of all of the contained subdirectories
NSArray *bundleArray = [[NSFileManager defaultManager] subpathsOfDirectoryAtPath:bundlePath error:nil];
//to access each object in array
NSEnumerator *filesEnumerator = [bundleArray objectEnumerator];
NSString *fileName;
unsigned long long int fileSize = 0;
NSError *error = nil;
//return next object from enumerator
while (fileName = [filesEnumerator nextObject])
{
NSDictionary *fileDictionary = [[NSFileManager defaultManager] attributesOfItemAtPath:[bundlePath stringByAppendingPathComponent:fileName] error:&error];
fileSize += [fileDictionary fileSize];
}
//converts a byte count value into a textual representation that is formatted with the appropriate byte modifier (KB, MB, GB and so on)
NSString *folderSizeStr = [NSByteCountFormatter stringFromByteCount:fileSize countStyle:NSByteCountFormatterCountStyleMemory];
NSLog(@"App size (bundle size): %@ \n\n\n",folderSizeStr);
于 2015-12-01T05:33:18.983 に答える