2011-08-10 23 views
7

iPad uygulamasında Caches klasörüne bir şey kaydetmeye çalışıyorum. Ben iade filepath çıktısını zamanNSCachesDirectory dosya sistemimde bir dizin değil

NSArray* cachePathArray = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); 
    NSString* cachePath = [cachePathArray lastObject]; 

, ben alıyorum:

/Users/Gela/Library/Application Support/iPhone Simülatörü/5.0/Uygulamalar/3FF7EB1A-49A9-4B13-ADC4 Ben sabit diskinde o klasöre gidin zaman -DF0662BA724B/Library/Önbellekler

ancak, "Önbellekler" klasör ama belli belirsiz bir "belge" dosyası değil.

Klasör olmadığına ve önbelleğime nasıl yazabileceğime dair herhangi bir fikir var mı?

+0

... dosya verilerini almak için bu yöntemi kullanabilirsiniz dizin kaybolur .. bazı hata gibi görünüyor – yasirmturk

cevap

13

Belki SimulatorCaches dir sahip değil. Bunu aygıtta denediniz ...

Caches dizinine buradan ulaşabilirsiniz. iOS bir dizinde `nil` saklamak sizin dizin karıştıran biridir sdk ve bazı çöp dosyasına değiştirmek ve bu tüm veriler çalışırsanız bazen

- (NSString *)getFileData: (NSString *)fileDirPath 
{ 
    NSArray *myPathList = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); 
    NSString *myPath = [myPathList objectAtIndex:0]; 
    NSError *err  = nil; 
    NSString *fData  = @""; 

    myPath = [myPath stringByAppendingPathComponent:fileDirPath]; 
    if([[NSFileManager defaultManager] fileExistsAtPath:myPath]) 
    { 
     fData = [NSString stringWithContentsOfFile:myPath encoding:NSUTF8StringEncoding error:&err]; 
     if(err) NSLog(@"getFileData() - ERROR: %@",[err localizedDescription]); 
    } 
    else 
    { 
     NSLog(@"getFileData() - ERROR: This file '%@' does not exist",myPath); 
    } 
    return fData; 
} 
+0

Evet, Caches dizinine giden yolu nasıl bulacağımı biliyorum. Sorun şu ki, "Önbellekler" sabit diskimde bir dizin değil. Örnek kodunuzun son satırını eklediğimde, yolun bir dizin olmadığını belirten bir hata alıyorum. – user888382

+0

Evet, en üstteki güncellemeye bakın. Düşünüyordum, belki Simulator 'Caches' dizini yok ... –

+0

Bilgisayarımda iPad simulator kullanarak önceki iPad uygulamalarında bunu yaptım ve Belgeler ve Kütüphane/Önbellek dizinleri vardı. Bu uygulamadaki Caches dizininin bozuk olabileceğini düşünüyorum. – user888382

İlgili konular