iphone - ver - explorador de archivos ios 11
¿Cómo puede determinar si existe un archivo dentro del paquete de la aplicación? (5)
Lo siento, pregunta tonta número 2 hoy. ¿Es posible determinar si un archivo está contenido dentro del paquete de la aplicación? Puedo acceder a los archivos sin problemas, es decir,
NSString *pathAndFileName = [[NSBundle mainBundle] pathForResource:fileName ofType:@"plist"];
Pero no se puede averiguar cómo verificar si el archivo existe allí en primer lugar.
Saludos
Dave
Este código funcionó para mí ...
NSString *pathAndFileName = [[NSBundle mainBundle] pathForResource:fileName ofType:nil];
if ([[NSFileManager defaultManager] fileExistsAtPath:pathAndFileName])
{
NSLog(@"File exists in BUNDLE");
}
else
{
NSLog(@"File not found");
}
Con suerte, ayudará a alguien ...
Lo mismo que @Arkady, pero con Swift 2.0:
Primero, llame a un método en mainBundle()
para ayudar a crear una ruta al recurso:
guard let path = NSBundle.mainBundle().pathForResource("MyFile", ofType: "txt") else {
NSLog("The path could not be created.")
return
}
Luego, llame a un método en defaultManager()
para verificar si el archivo existe:
if NSFileManager.defaultManager().fileExistsAtPath(path) {
NSLog("The file exists!")
} else {
NSLog("Better luck next time...")
}
pathForResource devolverá nil si el recurso no existe. Verificar nuevamente con NSFileManager es redundante.
Obj-C:
if (![[NSBundle mainBundle] pathForResource:@"FileName" ofType:@"plist"]) {
NSLog(@"The path could not be created.");
return;
}
Swift 4:
guard Bundle.main.path(forResource: "FileName", ofType: "plist") != nil else {
print("The path could not be created.")
return
}
NSFileManager *fileManager = [NSFileManager defaultManager];
NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"filename"];
if(![fileManager fileExistsAtPath:path])
{
// do something
}
[[NSFileManager defaultManager] fileExistsAtPath:pathAndFileName];