J'utilise actuellement setFitManages NSFileManager pour modifier l'autorisation d'un répertoire. Mon problème est qu'il ne semble pas le faire de manière récursive. Y a-t-il un moyen de le forcer à le faire?Comment modifier l'autorisation d'un répertoire de manière récursive à l'aide de NSFileManager setAttributes
5
A
Répondre
4
Je ne pense pas qu'il y ait une méthode intégrée pour ce faire, mais il ne devrait pas être difficile de faire quelque chose comme:
NSString *path = @"/The/root/directory";
NSDictionary *attributes; // Assume that this is already setup
NSFileManager *fileManager = [[[NSFileManager alloc] init] autorelease];
NSArray *subPaths = [fileManager subpathsAtPath:path];
for (NSString *aPath in subPaths) {
BOOL isDirectory;
[fileManager fileExistsAtPath:aPath isDirectory:&isDirectory];
if (isDirectory) {
// Change the permissions on the directory here
NSError *error = nil;
[fileManager setAttributes:attributes ofItemAtPath:aPath error:error];
if (error) {
// Handle the error
}
}
}
Ce n'est pas testé, mais devrait vous donner un point de départ.
2
NSString *path = @"/User/user/aPath";
NSFileManager *manager = [[[NSFileManager alloc] init] autorelease];
if ([manager fileExistsAtPath: path]) {
NSDictionary *attrib = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithInt:0], NSFileGroupOwnerAccountID,
[NSNumber numberWithInt:0], NSFileOwnerAccountID,
@"root", NSFileGroupOwnerAccountName,
@"root", NSFileOwnerAccountName, nil ];
NSError *error = nil;
[manager setAttributes:attrib ofItemAtPath:path error:&error];
NSDirectoryEnumerator *dirEnum = [manager enumeratorAtPath: path];
NSString *file;
while (file = [dirEnum nextObject]) {
[manager setAttributes:attrib ofItemAtPath:[path stringByAppendingPathComponent:file] error:&error];
}
}
Questions connexes
- 1. NSFilemanager un répertoire de retour?
- 2. Comment déplacer des dossiers de manière récursive?
- 3. Blob ... comment écrire de manière non récursive
- 4. Comment copier un répertoire de manière récursive et filtrer les noms de fichiers en Perl?
- 5. Comment exécuter une commande Windows batch de manière récursive?
- 6. Comment lire de manière récursive des répertoires dans Perl?
- 7. Supprimer les propriétés de manière récursive
- 8. Ouvrir certains répertoires de manière récursive dans Dired
- 9. Comment définir les variables shell dans subprocess.Popen (d'une manière moins laide ...)
- 10. T-SQL Comment exécuter une procédure de manière récursive?
- 11. Comment créer des dossiers de manière récursive dans Delphi?
- 12. Impossible d'archiver le dossier de manière récursive dans SourceOffsite
- 13. Comment renommer un fichier en utilisant NSFileManager
- 14. Copier le dossier de manière récursive, excluant certains dossiers
- 15. Comment modifier l'URL d'un répertoire
- 16. NSFileManager & NSFileHandle?
- 17. Modifier l'encodage de l'image de manière dynamique?
- 18. PyGTK/SCAD: répertoire de moniteur pour les changements récursive
- 19. structure de données laide à la recherche java
- 20. Comment parcourir de manière récursive des répertoires dans C sous Windows
- 21. SVN supprimer/supprimer tous les externes de manière récursive
- 22. Traverser un hachage de manière récursive dans Ruby
- 23. en boucle sur un objet (arborescence) de manière récursive
- 24. traverse le dictionnaire multidimensionnel de manière récursive, dimension inconnue
- 25. PHP mkdir ($ récursive = true) saute dernier répertoire
- 26. Modifier le répertoire de cache de Clickonce
- 27. Manière efficace de modifier 100GB table
- 28. GetOpenFileName Modifier le répertoire
- 29. Copie récursive dossier/répertoire avec AS3/Air
- 30. Trier NSFileManager Résultats