2011-01-20 7 views
14

Je souhaite supprimer tous les fichiers et répertoires contenus dans le répertoire Documents. Je crois que l'utilisation de la méthode [fileManager removeItemAtPath: documentsDirectoryPath error: nil] permet également de supprimer le répertoire de documents.Comment supprimer le contenu du répertoire Documents (et non le répertoire Documents lui-même)?

Y at-il une méthode qui vous permet de supprimer le contenu d'un répertoire uniquement et de laisser le répertoire vide à cet endroit?

Répondre

43

Essayez ceci:

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 Swift

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) 
} 
Questions connexes