Tengo un proyecto escrito para dispositivos Android. Genera una gran cantidad de archivos, cada día. Estos son todos los archivos de texto e imágenes. La aplicación usa una base de datos para hacer referencia a estos archivos.¿Existe un límite para la cantidad de archivos en un directorio en una tarjeta SD?
Se supone que la aplicación debe borrar estos archivos después de un pequeño uso (quizás después de unos días), pero este proceso puede o no estar funcionando. Este no es el tema de esta pregunta.
Debido a un accidente histórico, la organización de los archivos es algo ingenua: todo está en el mismo directorio; un directorio .hidden
que contiene un archivo .nomedia
de cero bytes para evitar que el MediaScanner lo indexe.
Hoy en día, estoy viendo informa de un error:
java.io.IOException: Cannot create: /sdcard/.hidden/file-4200.html
at java.io.File.createNewFile(File.java:1263)
En cuanto a la sdcard, veo que tiene gran capacidad de almacenamiento a la izquierda, pero contando
$ cd /Volumes/NO_NAME/.hidden
$ ls | wc -w
9058
Eliminación de un número de archivos parece tener permitido la creación de archivos para hoy.
Lamentablemente, no probé touch
ing un nuevo archivo para tratar de reproducir el error en una línea de comandos; También borré varios cientos de archivos en lugar de un puñado.
Sin embargo, mi pregunta es:
- ¿existen límites estrictos tamaño del archivo o el número de archivos en un directorio?
- ¿Estoy aún en el camino correcto aquí?
Nota Bene: La tarjeta SD es tal y como son - es decir, que no se lo he formateado, por lo que supongo que sería una FAT * formato.
El formato FAT-32 tiene límites duros de tamaño de archivo de 2 GB (muy por encima de los tamaños de archivo que estoy tratando) y un límite de número de archivos en el directorio raíz. Definitivamente no estoy escribiendo archivos en el directorio raíz.
Gran respuesta, incluida la investigación primaria. Esto suena muy factible. El error ha cambiado recientemente, así que probará esta teoría e informará. – jamesh
Absolutamente golpear el dinero. 6k archivos de aproximadamente 108 caracteres en el nombre del archivo. 3.5k archivos de aproximadamente 9 caracteres en el nombre del archivo. Gracias. – jamesh
Genial, muchas gracias! – yava