Si en verdad está más interesado en aprender a escribir el suyo, le sugiero que lea detenidamente la documentación de la clase File. Ahí es donde harás la mayor parte del trabajo.
En el caso de tarjetas SD/otro almacenamiento externo para Android, tendrá que comprobar primero para asegurarse de que el almacenamiento externo está montado y disponible antes de intentar leerlo, utilizando la clase Environment:
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 adecuado del almacenamiento externo, una forma sencilla de empezar es utilizar el método listFiles de archivo(), 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();
a continuación, puede empezar a utilizar FileFilters a limitar los resultados :
FileFilter filterDirectoriesOnly = new FileFilter() {
public boolean accept(File file) {
return file.isDirectory();
}
};
File[] sdDirectories = sd.listFiles(filterDirectoriesOnly);
A partir de ahí, acaba de leer a través de los documentos para encontrar el tipo de cosa que usted está buscando para hacer con él, y luego se puede trabajar en atar estos en la lista de adaptadores, etc.
Esperanza ¡esto ayuda!
Oh, por cierto, tengo un archivo de trabajo que funciona y script de lectura de archivos que he probado y funciona, quería que el navegador de archivos que estoy creando simplemente devuelva el Uri del archivo en el que hizo clic/directorio que seleccionaste – AlexPriceAP
En ese caso, simplemente agregue un controlador de clic que devuelva la ruta del archivo correspondiente (por ejemplo, 'sdDirectories [1] .getAbsolutePath()'). – kcoppock
¡Muchas gracias, voy a comenzar a hacerlo pronto! Si tengo problemas, ¿estaría bien si te pido ayuda o preferirías no hacerlo? :) – AlexPriceAP