2011-08-10 17 views
7

मैं अपने iPad ऐप्लिकेशन पर अपना कैश फ़ोल्डर में कुछ स्टोर करने के लिए कोशिश कर रहा हूँ।नहीं NSCachesDirectory मेरी फाइल सिस्टम में एक निर्देशिका

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

और जब मैं वापस आ filepath प्रिंट आउट, मैं मिलता है:

/उपयोगकर्ताओं/Gela/लायब्रेरी/एप्लिकेशन समर्थन/iPhone के सिम्युलेटर/5.0/अनुप्रयोग/3FF7EB1A-49A9-4B13-ADC4 -DF0662BA724B/लाइब्रेरी/कैश

हालांकि, जब मैं अपने हार्ड ड्राइव पर उस फ़ोल्डर पर नेविगेट करता हूं, तो "कैश" एक फ़ोल्डर नहीं बल्कि एक अस्पष्ट "दस्तावेज़" फ़ाइल है।

कोई भी विचार क्यों यह एक फ़ोल्डर नहीं है और मैं अपने कैश करने के लिए कैसे लिख सकता है?

+0

कभी कभी अगर आप 'nil' iOS की एक निर्देशिका में स्टोर एसडीके यह आपके निर्देशिका को खराब करता है और कुछ कचरा फाइल करने के लिए इसे बदलने और उस में अपने सभी डेटा करने की कोशिश निर्देशिका खो गई है .. कुछ बग की तरह लगता है – yasirmturk

उत्तर

13

शायद SimulatorCaches dir जरूरत नहीं है। आप डिवाइस पर इस कोशिश ...

आप इस तरह Caches निर्देशिका पहुँच सकते हैं। मैं फ़ाइल डेटा प्राप्त करने के लिए इस विधि का उपयोग ...

- (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

हाँ, मुझे पता है कि कैश निर्देशिका के पथ को कैसे ढूंढें। समस्या यह है कि "कैश" मेरी हार्ड ड्राइव पर एक निर्देशिका नहीं है। जब मैंने आपके उदाहरण कोड की अंतिम पंक्ति शामिल की, तो मुझे एक त्रुटि मिल रही है कि पथ निर्देशिका नहीं है। – user888382

+0

हाँ, शीर्ष पर मेरा अपडेट देखें। मैं सोच रहा था, हो सकता है सिम्युलेटर 'Caches' निर्देशिका नहीं है ... –

+0

मैं अपने कंप्यूटर पर आईपैड सिम्युलेटर का उपयोग करने वाले एप्लिकेशन को पिछले आईपैड पर यह कर दिया है और वे दस्तावेज़ और Library/Caches निर्देशिका पड़ा है। मुझे लगता है कि इस विशेष ऐप पर कैश निर्देशिका दूषित हो सकती है? – user888382

संबंधित मुद्दे