2011-01-20 13 views
14

मैं दस्तावेज़ निर्देशिका में निहित सभी फाइलें और निर्देशिका को हटाना चाहता हूं।दस्तावेज़ निर्देशिका की सामग्री को कैसे हटाएं (और दस्तावेज़ निर्देशिका स्वयं नहीं)?

मुझे विश्वास है कि [fileManager removeItemAtPath: दस्तावेज़ डायरेक्टरी पाथ त्रुटि: शून्य] विधि दस्तावेज़ निर्देशिका को भी हटा देगी।

क्या कोई ऐसी विधि है जो आपको केवल निर्देशिका की सामग्री को हटाने और खाली निर्देशिका को छोड़ने देती है?

उत्तर

43

इस प्रयास करें:

NSString *folderPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; 
NSError *error = nil; 
for (NSString *file in [[NSFileManager defaultManager] contentsOfDirectoryAtPath:folderPath error:&error]) { 
    [[NSFileManager defaultManager] removeItemAtPath:[folderPath stringByAppendingPathComponent:file] error:&error]; 
} 
2

स्विफ्ट 3.x

let path = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] 
guard let items = try? FileManager.default.contentsOfDirectory(atPath: path) else { return } 

for item in items { 
    // This can be made better by using pathComponent 
    let completePath = path.appending("/").appending(item) 
    try? FileManager.default.removeItem(atPath: completePath) 
} 
संबंधित मुद्दे