iphone - para - Obtenga la extensión de un archivo contenido en un NSString
formato video iphone 6 (6)
En Swift 3 puedes usar una extensión:
extension String {
public func getExtension() -> String? {
let ext = (self as NSString).pathExtension
if ext.isEmpty {
return nil
}
return ext
}
}
Tengo un diccionario NSMutable que contiene ID de archivo y su nombre de archivo + extensión en la forma simple de fileone.doc o filetwo.pdf. Necesito determinar qué tipo de archivo es para mostrar correctamente un ícono relacionado en mi UITableView. Esto es lo que he hecho hasta ahora.
NSString *docInfo = [NSString stringWithFormat:@"%d", indexPath.row]; //Determine what cell we are formatting
NSString *fileType = [contentFiles objectForKey:docInfo]; //Store the file name in a string
Escribí dos expresiones regulares para determinar qué tipo de archivo estoy viendo, pero nunca arrojan un resultado positivo. No he usado expresiones regex en la programación de iOS antes, así que no estoy del todo seguro de si lo estoy haciendo bien, pero básicamente copié el código de la página Descripción de clase.
NSError *error = NULL;
NSRegularExpression *regexPDF = [NSRegularExpression regularExpressionWithPattern:@"/^.*//.pdf$/" options:NSRegularExpressionCaseInsensitive error:&error];
NSRegularExpression *regexDOC = [NSRegularExpression regularExpressionWithPattern:@"/^.*//.(doc|docx)$/" options:NSRegularExpressionCaseInsensitive error:&error];
NSUInteger numMatch = [regexPDF numberOfMatchesInString:fileType options:0 range:NSMakeRange(0, [fileType length])];
NSLog(@"How many matches were found? %@", numMatch);
Mis preguntas serían, ¿hay alguna manera más fácil de hacer esto? Si no, ¿mi expresión regular es incorrecta? Y finalmente, si tengo que usar esto, ¿es costoso en tiempo de ejecución? No sé cuál será la cantidad promedio de archivos que tendrá un usuario.
Gracias.
Está buscando [fileType pathExtension]
Intente utilizar [fileType pathExtension] para obtener la extensión del archivo.
Prueba esto :
NSString *fileName = @"resume.doc";
NSString *ext = [fileName pathExtension];
Prueba esto, funciona para mí.
NSString *fileName = @"yourFileName.pdf";
NSString *ext = [fileName pathExtension];
Documentación aquí para NSString pathExtension
//NSURL *url = [NSURL URLWithString: fileType];
NSLog(@"extension: %@", [fileType pathExtension]);
Editar puede usar pathExtension en NSString
Gracias a David Barry