Attualmente sto utilizzando NSFileManager setAttributes per modificare il permesso di una directory. Il mio problema è che non sembra farlo in modo ricorsivo. C'è un modo per costringerlo a farlo?Come modificare il permesso di una directory in modo ricorsivo utilizzando NSFileManager setAttributes
5
A
risposta
4
Non credo che ci sia un metodo incorporato per fare questo, ma non dovrebbe essere difficile fare qualcosa di simile:
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
}
}
}
Questo non è testato, ma dovrebbe darvi un punto di partenza.
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];
}
}
Problemi correlati
- 1. Come trovo il file in modo ricorsivo nelle directory
- 2. Scorrimento ricorsivo di una directory in Haskell
- 3. Come creare directory in modo ricorsivo in rubino?
- 4. Linux: imposta il permesso solo alle directory
- 5. NSFileManager creando errore di directory 518 NSFileWriteUnsupportedSchemeError
- 6. creazione di file, creazione di directory in modo ricorsivo
- 7. Come faccio a elencare in modo ricorsivo tutte le directory in una posizione, prima di tutto?
- 8. Ricerca di file nelle directory in modo ricorsivo
- 9. Come modificare il comportamento di blocco ricorsivo di Windows Mutex?
- 10. Controllare in modo ricorsivo gli aggiornamenti della directory git
- 11. Apri alcune directory in modo ricorsivo in Dired
- 12. modifica dei permessi per file e cartelle in modo ricorsivo utilizzando il comando shell in mac
- 13. Trova il file più vecchio (in modo ricorsivo) in una directory
- 14. Come eliminare i file in modo ricorsivo
- 15. UNIX Comando per modificare in modo ricorsivo le autorizzazioni sulle directory?
- 16. NSFileManager: enumeratorAtURL: restituisce una diversa forma di URL per NSFileManager: URLForDirectory
- 17. Come si impedisce il binding di AngularJS in modo ricorsivo?
- 18. Problema con la restituzione di un enumeratore di directory da NSFileManager utilizzando enumeratorAtUrl in Swift
- 19. Dump ricorsivo in modo ricorsivo dei contenuti di una struttura aggregata (Collection, Array) in Java
- 20. Cocoa Sandbox: come ottenere il permesso di scrivere più file o in una directory con NSSavePanel
- 21. Come trovare e sostituire tutte le occorrenze di una stringa in modo ricorsivo in un albero di directory?
- 22. Come modificare il permesso di file per tutte le sottodirectory (CHMOD)
- 23. Compreso i file di intestazione in modo ricorsivo per syntastic
- 24. Esiste un Corrispondente per il confronto ricorsivo di directory?
- 25. Come stampare una struttura C in modo ricorsivo in gdb
- 26. Trova padre in modo ricorsivo utilizzando la query
- 27. Cammina una directory in modo ricorsivo in Qt, salta le cartelle "." e ".."
- 28. Intellij annidamento ricorsivo delle directory di output
- 29. Creazione di una visualizzazione di albero in modo ricorsivo
- 30. Come eseguire un comando batch di Windows in modo ricorsivo?