2012-02-14 7 views
6

Bu araştırmada, disk üzerinde boş alan elde etmek için bazı araştırmalardan sonra bulunan bir koddan ayıklamak için kullanıyorum. Bu runing zaman, banaiPhone - Aygıtta kalan boş alan yanlış olarak bildirildi (+ - 200 Mb fark)

Ama görünümlü benim iPhone ortama (/ 1024/1024/1024) 3,408699035644531 Gb verecekti 3660062720,000000 bayt bir boş alan verir neden

float freeSpace = -1.0f; 
    NSError* error = nil; 
    NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSDictionary* dictionary = [[NSFileManager defaultManager] attributesOfFileSystemForPath:[paths lastObject] error: &error]; 

    if (dictionary) { 
     NSNumber* fileSystemSizeInBytes = [dictionary objectForKey:NSFileSystemFreeSize]; 
     freeSpace = [fileSystemSizeInBytes floatValue]; 
    } 

acaba - > genel bilgi (ve ayrıca iTunes'a), iPhone'umun sadece 3.2 Gb'si kaldığını söyledim.

Hata nerede? Aşağıdaki kod çalıştı ve benim cihazda, aynı zamanda bir ~ 200MB tutarsızlık olduğunu fark:

+0

Buna bir cevap buldunuz mu? –

+1

@PauliusLiekis – Oliver

cevap

2

Bazen boş alan yanlış https://discussions.apple.com/thread/2566412?threadID=2566412

DÜZENLEMEYİ bildirdi anlaşılıyor. Belki de bu depolama bir şekilde sistem için ayrılmıştır?

NSDictionary *fsAttr = [[NSFileManager defaultManager] fileSystemAttributesAtPath:NSHomeDirectory()]; 

unsigned long long freeSpace = [[fsAttr objectForKey:NSFileSystemFreeSize] unsignedLongLongValue]; 

NSLog(@"%llu", freeSpace); 
NSLog(@"%f", freeSpace/1073741824.0); 
+1

Müdahale. Ama benim iPhone ve sadece iTunes değil, aynı zamanda 3.2 Gb ... Ve yöntem 3.4 ... – Oliver

+0

döndürür Benim yanıt, Ayrıca bir fark dikkat edin – danielbeard

+0

Çok çok garip ... – Oliver

İlgili konular