Programación De Android: ¿Por Dónde Empezar A Crear Un Navegador De Archivos Sencillo?


Me gustaría hacer un explorador de archivos que haga dos cosas: 1) Permitir al usuario navegar y seleccionar un directorio 2) Permitir al usuario navegar por todos los archivos en su tarjeta sd

He buscado tutoriales pero no puedo encontrar ninguno? ¿Puede alguien por favor ayudarme ya sea explicando cómo lo que mi código tendría que hacer para tener un navegador de archivos simple o proporcionándome un enlace a un tutorial/código fuente?

Por favor y gracias!

Author: ChrisF, 2010-11-05

3 answers

Si en realidad estás más interesado en aprender a escribir el tuyo propio, te sugiero que hagas una larga lectura de la documentación de la clase File. Ahí es donde vas a hacer la mayor parte del trabajo.

En el caso de tarjetas SD / otro almacenamiento externo para Android, primero debes verificar que el almacenamiento externo esté montado y disponible antes de intentar leerlo, utilizando el entorno clase:

String extState = Environment.getExternalStorageState();
//you may also want to add (...|| Environment.MEDIA_MOUNTED_READ_ONLY)
//if you are only interested in reading the filesystem
if(!extState.equals(Environment.MEDIA_MOUNTED)) {
    //handle error here
}
else {
    //do your file work here
}

Una vez que haya determinado el estado apropiado de para el almacenamiento externo, una forma sencilla de comenzar es usar el método listFiles() de File, así:

//there is also getRootDirectory(), getDataDirectory(), etc. in the docs
File sd = Environment.getExternalStorageDirectory();
//This will return an array with all the Files (directories and files)
//in the external storage folder
File[] sdDirList = sd.listFiles();

Luego puede comenzar a usar filtros de archivos para reducir sus resultados:

FileFilter filterDirectoriesOnly = new FileFilter() {
    public boolean accept(File file) {
        return file.isDirectory();
    }
};
File[] sdDirectories = sd.listFiles(filterDirectoriesOnly);

A partir de ahí, simplemente lea los documentos para encontrar el tipo de cosa que está buscando hacer con él, y luego puede trabajar en vincularlos a adaptadores de lista, etc.

Espero que esto ayude!

 27
Author: kcoppock,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-11-05 18:51:34

Esta es una respuesta tardía, pero trabajé en la creación de un explorador de archivos Android recientemente. https://github.com/mburman/Android-File-Explore

Es realmente sencillo. Esencialmente su solo 1 archivo que tendría que integrar en su aplicación.

 21
Author: Manish Burman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-07-19 23:26:12

Echa un vistazo a OI File Manager, que es un gestor de archivos Android de código abierto. Puede obtener el código fuente aquí.

 8
Author: Ryan Berger,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-26 17:25:03