hay una manera de conseguir cadena legible por humanos (@ "drwxr-xr-x", por ejemplo) a partir de un número entero NSFilePosixPermissions?Objective-C NSFilePosixPermissions a NSString legible por humanos
Respuesta
El sistema de archivos permisos atributo es simplemente un valor de largo sin signo. El código siguiente, obviamente, podría hacerse más eficiente, pero se nota [más o menos] lo que hay que hacer para obtener la cadena que desea:
// The indices of the items in the permsArray correspond to the POSIX
// permissions. Essentially each bit of the POSIX permissions represents
// a read, write, or execute bit.
NSArray *permsArray = [NSArray arrayWithObjects:@"---", @"--x", @"-w-", @"-wx", @"r--", @"r-x", @"rw-", @"rwx", nil];
NSFileManager *fm = [[[NSFileManager alloc] init] autorelease];
NSMutableString *result = [NSMutableString string];
NSDictionary *attrs = [fm attributesOfItemAtPath:@"some/path.txt" error:NULL];
if (!attrs)
return nil;
NSUInteger perms = [attrs filePosixPermissions];
if ([[attrs fileType] isEqualToString:NSFileTypeDirectory])
[result appendString:@"d"];
else
[result appendString:@"-"];
// loop through POSIX permissions, starting at user, then group, then other.
for (int i = 2; i >= 0; i--)
{
// this creates an index from 0 to 7
unsigned long thisPart = (perms >> (i * 3)) & 0x7;
// we look up this index in our permissions array and append it.
[result appendString:[permsArray objectAtIndex:thisPart]];
}
return result;
Bueno, yo supongo que se puede crear una matriz de este modo:
NSArray *convertToAlpha = [NSArray arrayWithObjects:@"---",@"--x",@"-w-",@"--wx",@"r--",@"r-x",@"rw-",@"rwx", nil];
Luego, después de tranlating los NSFilePosixPermissions a octal, dividir el número resultante en sus dígitos componenete y utilizar convertToAlpha para mapear cada dígito a su representación alfanumérica. ...
xm ... Lo intentaré. Volveré si lo hago, para publicar toda la solución. ¡Gracias! – Vassilis
@VassilisGr, @ennuikiller: ten cuidado, necesitas un símbolo '@' detrás de cada cadena, y también necesitas agregar 'nil' a tu lista de argumentos. – dreamlax
@dreamlax, ¡gracias por las correcciones! – ennuikiller
- 1. Salida XML legible por humanos de Scala?
- 2. C++ IP Address forma legible por humanos
- 3. PLCrashReporter: Creando una stacktrace legible por humanos
- 4. Intervalo de tiempo legible por humanos automático
- 5. Db2 formateador de error legible por humanos
- 6. Convertir milisegundos a lapso de tiempo legible por humanos
- 7. marca de hora a formato legible por humanos
- 8. Cron a cadena legible para humanos
- 9. Necesito un formato de documento legible por humanos, pero analizable
- 10. NSFileManager & NSFilePosixPermissions
- 11. cadenas de fecha Python diferencia de fechas legible por humanos
- 12. convertir microsegundos en un tiempo legible por humanos
- 13. Convirtiendo CMTime a tiempo legible para humanos en Object-C
- 14. llvm ir a lenguaje de origen legible para los humanos?
- 15. ¿Cómo convertir xsd a documentación legible para humanos?
- 16. formato a un objeto de fecha para visualizar una fecha legible por humanos
- 17. Clase ObjC/Cocoa para convertir el tamaño a una secuencia legible por humanos?
- 18. El formato doble a la latitud/longitud formato legible por humanos
- 19. NSKeyedArchiver escribir XML (u otra legible para humanos)?
- 20. Cómo dividir la nueva línea de NSString en ObjectiveC
- 21. Usando Html.LabelPara visualizar una etiqueta legible para humanos?
- 22. Conversión de enumeraciones a valores legibles por humanos
- 23. Convertir una marca de tiempo Unix de una fecha legible por humanos en PHP?
- 24. Cómo generar un rango de tiempo legible por humanos usando Ruby on Rails
- 25. Representación de cadena legible por humanos de la tabla en Lua
- 26. CronExpressions: ¿alguna biblioteca que exista para generarlas/convertirlas a una forma legible para humanos?
- 27. Convierta cadena de octetos snmp a formato de fecha legible para humanos
- 28. ¿Cómo puedo obtener una descripción legible para humanos a partir de un número de señal?
- 29. ¿Hay algún servicio en línea para traducir los comandos de VIM a una forma legible por humanos?
- 30. URL legibles por humanos: preferiblemente jerárquicas también?
Nop. Completamente imposible sin el Talisman Unicornio y un montón de licor. (Véase operaciones bit a bit: http://en.wikipedia.org/wiki/Bitwise_operation) –
(Up-votó la cuestión, ya que es una buena y estoy siendo un smart-A **.) :-) Gracias Joshua –
! ¡la respuesta aceptada parece estar bien! – Vassilis