obtener el path de un archivo txt alojado en assets o en res/raw

1,839 views
Skip to first unread message

Jose Javier

unread,
Nov 12, 2013, 5:10:35 PM11/12/13
to desarrollad...@googlegroups.com
Buenas noches,

estoy intentando obtener el path de un archivo en el directorio assets o res/raw. He estado mirando bastante en stackoverflow, pero la verdad es que en ninguna solucion he encontrado la forma de obtener el path del archivo en uno de esos dos sitios. Tengo que llamar a un metodo de una libreria externa pasandole el path del archivo. Alguien sabe como hacerlo?

Gracias de antemano,
Jose.

Jorge Luis Ortiz Castillo

unread,
Nov 12, 2013, 5:26:32 PM11/12/13
to desarrollad...@googlegroups.com

Jose Javier

unread,
Nov 13, 2013, 3:28:15 AM11/13/13
to desarrollad...@googlegroups.com
Gracias por tu respuesta Jorge,

pero eso me devuelve un InputStream para poder leer el fichero ya abierto. Tal y como he dicho necesito saber la ruta al fichero (su path), no abrirlo yo. El metodo al que tengo que llamar está en una libreria la cual no puedo modificar, y le tengo que pasar el path del archivo.
Ya habia visto en stackoverflow ese tipo de respuestas, pero no valen para lo que necesito.
La verdad es que no se si se puede hacer lo que pretendo. A lo mejor alguien lo sabe?

Gracias!
Jose.



--
Para participar es necesario que leas detenidamente las normas del grupo: http://goo.gl/20KhL
---
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a desarrolladores-a...@googlegroups.com.
Para publicar una entrada en este grupo, envía un correo electrónico a desarrollad...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/desarrolladores-android.
Para ver este debate en la Web, visita https://groups.google.com/d/msgid/desarrolladores-android/f53b298c-5cb9-4b12-b55a-e21bb0b6ffe4%40googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.

Juan de Dios Maldonado Sánchez

unread,
Nov 13, 2013, 3:35:59 AM11/13/13
to desarrollad...@googlegroups.com
Me da a mi que lo que pongas en el res/raw no existe como archivo en sí. Aunque si en vez de la ruta del archivo (dentro de la memoria interna), te vale utilizar una URI para acceder a los mismos, esta se genera así:

If you want to get any resource URI then there are two ways :

  1. Using Resource Name

    Syntax : android.resource://[package]/[res type]/[res name]

    Example : Uri.parse("android.resource://com.my.package/drawable/icon");

  2. Using Resource Id

    Syntax : android.resource://[package]/[resource_id]

    Example : Uri.parse("android.resource://com.my.package/" + R.drawable.icon);



Creo que te va a tocar copiar el archivo temporalmente a la memoria externa/interna, y después, utilizarlo.





2013/11/13 Jose Javier <pepe...@gmail.com>

Jose Javier

unread,
Nov 13, 2013, 4:19:21 AM11/13/13
to desarrollad...@googlegroups.com
Hola de nuevo,

gracias Juan, eso es lo que me temia, que me iba a tocar copiarlo usando el inputstream al abrirlo desde assets a memoria interna o externa.
Bueno, por si a alguien le interesa os dejo el codigo que he usado, en stackoverflow hay cosas asi, no tiene mas misterio, simplemente que lo que yo queria hacer no se puede. En iOS hay un pathForResource, que era algo como lo que yo buscaba xD
                    InputStream in = getAssets().open("test2.txt");
                    File outFile = new File(getFilesDir().getPath() +"/test2.txt");
                    Log.d("paaath", outFile.getAbsolutePath());
                    OutputStream out = new FileOutputStream(outFile);
                   
                    byte[] buffer = new byte[1024];
                    int read;
                    while((read = in.read(buffer)) != -1){
                      out.write(buffer, 0, read);
                    }
                    in.close();
                    out.flush();
                    out.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
Y para obtener el path:
                 String path = getFilesDir().getAbsolutePath() + "/test2.txt"

Un saludo,
Jose.




Reply all
Reply to author
Forward
0 new messages