2012-03-02 13 views
9

मुझे उद्देश्य-सी में फ़ाइल को हटाने के लिए नीचे दिया गया कोड मिला, लेकिन मैं केवल Caches की निर्देशिका के तहत सभी फ़ाइलों को हटाना चाहता हूं और निर्देशिका Caches अपने आप।उद्देश्य सी: निर्देशिका के तहत केवल सभी फाइलों को कैसे हटाएं, लेकिन निर्देशिका को स्वयं रखें

क्या कोई ऐसा करने का तरीका सुझा सकता है?

धन्यवाद

NSFileManager *filemgr; 

filemgr = [NSFileManager defaultManager]; 

if ([filemgr removeItemAtPath: [NSHomeDirectory() stringByAppendingString:@"/Library/Caches"] error: NULL] == YES) 
     NSLog (@"Remove successful"); 
else 
     NSLog (@"Remove failed"); 

कि निर्देशिका में फ़ाइलों के माध्यम से अपडेट

NSFileManager *filemgr; 

filemgr = [NSFileManager defaultManager]; 

if ([filemgr removeItemAtPath: [NSHomeDirectory() stringByAppendingString:@"/Library/Caches"] error: NULL] == YES) 
    NSLog (@"Remove successful"); 
else 
    NSLog (@"Remove failed"); 

[filemgr createDirectoryAtPath: [NSHomeDirectory() stringByAppendingString:@"/Library/Caches"] withIntermediateDirectories:NO attributes:nil error:nil]; 
+0

कैसे के बारे में फिर से बनाते हैं हटाए जाने के बाद कैश फ़ोल्डर? – ohho

+0

आप निर्देशिका को हटा सकते हैं और फिर इसे फिर से बना सकते हैं, हालांकि आपको यह सुनिश्चित करना होगा कि आप सही अनुमतियां बनाए रखें। – dreamlax

+0

अच्छा विचार, धन्यवाद –

उत्तर

39

लूप।

NSFileManager *fileMgr = [NSFileManager defaultManager]; 
NSArray *fileArray = [fileMgr contentsOfDirectoryAtPath:directory error:nil]; 
for (NSString *filename in fileArray) { 

    [fileMgr removeItemAtPath:[directory stringByAppendingPathComponent:filename] error:NULL]; 
} 
+0

सुझाव के लिए धन्यवाद, लेकिन कार्यक्रम संकलन करते समय त्रुटि मिली। 'थ्रेड 1: EXC_BAD_ACCESS (कोड = 1, पता = 0x8b8c0001)' –

+0

किस पंक्ति में यह त्रुटि दिखाता है? कोड को डीबग करें और कहें। – HarshIT

+0

मेरी गलती, फ़ाइल नाम सिर्फ नाम है, फुलपाथ – Hanon

0
- (void) removeDocuments 
{ 
    NSString *docDir = // get documents directory 
    NSString *cacheDir = [docDir stringByAppendingPathComponent: @"cacheDir"]; 

    // check if cache dir exists 

    // get all files in this directory 
    NSFileManager *fm = [NSFileManager defaultManager]; 
    NSArray *fileList = [fm contentsOfDirectoryAtPath: cacheDir error: nil]; 

    // remove 
    for(NSInteger i = 0; i < [fileList count]; ++i) 
    { 
     NSString *fp = [fileList objectAtIndex: i]; 
     NSString *remPath = [cacheDir stringByAppendingPathComponent: fp]; 
     [fm removeItemAtPath: remPath error: nil]; 
    } 
} 
संबंधित मुद्दे