Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android

Respuesta
 
Herramientas
  #1  
Viejo 09/05/12, 09:54:29
Array

[xs_avatar]
timonoj
Usuario invitado
 
Mensajes: n/a

Ayuda... file.makedirs() no crea los directorios (?!)

Buenas!

Tengo este problema. Estoy haciendo un programa que descarga una página y todas las imágenes que hay en dicha página. En la carpeta que descarga los archivos, quiero que se guarden en plan esta estructura:
.../files/nombre_del_articulo.html
.../files/nombre_del_articulo/imagen1.jpg
.../files/nombre_del_articulo/imagen2.jpg
etc.
Vamos, que por página descargada cree una carpeta con el nombre de la página para las imágenes correspondientes.
Veamos el código que he escrito...
Código:
File dirPics = new File(SDcard.getAbsolutePath()+"/data/data/mi_app/files/"+pageTitle);
pageTitle es un string con el título de la página.

Código:
file= new File(dirPics, filename);
filename es otro string, que tiene el nombre que tendrá el jpg. Usease, dirpics es la carpeta y filename el nombre de archivo.
Código:
if (!file.exists()){
        Log.i("WikiOff","Folder didn't exist, creating now...successful? "+file.mkdirs());
            }
Si file no existe, le creo la carpeta. Ahora mismo lo tengo para que trate de crear la carpeta mientras escribe la entrada al log.i. Antes era una línea por separado, y seguía fallando. El log escupe siempre "Folder didn't exist, creating now...successful? FALSE".
La apk tiene en el manifest permiso para escribir en la SD card, así que en principio ese no es el problema. En el log, cada vez que trato de guardar un archivo, trato de crear la carpeta, así que lo tengo bien de morralla. Pero cada vez que lo intenta, pone lo siguiente:

 Cita:
05-09 07:32:07.175: W/System.err(379): java.io.FileNotFoundException: /mnt/sdcard/data/data/mi_app/files/articulo/magnify-clip.png (Not a directory)
No sé a qué se refiere con que no es un directorio (¿?). La ruta existe correctamente hasta "files", inclusive. El directorio "articulo" no se crea.
Alguien sabe por qué pasa esto?
Mil gracias!

Última edición por timonoj Día 09/05/12 a las 09:56:43.
Responder Con Cita


  #2  
Viejo 09/05/12, 12:13:31
Array

[xs_avatar]
monchyrcg monchyrcg no está en línea
Miembro del foro
 
Fecha de registro: sep 2011
Localización: Cartagena
Mensajes: 384
Modelo de smartphone: LG Optimus Black
Tu operador: Orange
No entiendo muy bien lo que quieres decir. Te enseño como hago yo para crear una carpeta, uso mkdir. A lo mejor ayudaría un poco que nos mostrase la linea que te da el error, este error esta claro que es porque la carpeta que quieres acceder no existe.

Código:
private File f = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/ejercicio/");

public void abrirCrearBD(){
		if(!f.exists()){
        	f.mkdir();
        	db = SQLiteDatabase.openOrCreateDatabase(f.getAbsolutePath() + "/tusRutas.db", null);
        	
		}else{
			db = SQLiteDatabase.openOrCreateDatabase(f.getAbsolutePath() + "/tusRutas.db", null);
		}
}
Responder Con Cita
Gracias de parte de:
  #3  
Viejo 11/05/12, 05:28:34
Array

[xs_avatar]
timonoj
Usuario invitado
 
Mensajes: n/a

Buenas. Perdona por tardar. Te cuento, al final parece que el sistema de ficheros tenía algún problema, así que he borrado la SD (en el emulador), y ha tirado mucho mejor. Tengo ahora otros problemas similares (todo parece ser una confusión entre cómo especificas archivos y carpetas, ahora me está creando carpetas con los nombres de archivo). EN fin, que a ver si pillo la línea mala. Y sí, yo también uso mkdir. Bueno, yo uso mkdirs(), que genera todos los subdirectorios necesarios hasta el archivo concreto, no sólo el último.
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 07:05:04 (GMT +1)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /