1

フレームワークとともにiPhoneアプリのサイズを見つけることに取り組んでいますが、これを行う方法が見つかりませんでした.誰かが私にこれのコードを提供できますか? 実行中にアプリの現在のメモリ使用量を見つけるコードを取得しました。

リンクはこちら

4

3 に答える 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 に答える