¿Existe un límite para el número de archivos en un directorio de una tarjeta SD?

Tengo un proyecto escrito para dispositivos Android. Genera un gran número de archivos, cada día. Estos son todos los archivos de texto e imágenes. La aplicación utiliza una base de datos para hacer referencia a estos archivos.

La aplicación se supone para aclarar estos archivos después de un poco de uso (tal vez después de unos días), pero este proceso puede o no puede 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; .hidden directorio .hidden que contiene un archivo .nomedia cero bytes para evitar que el MediaScanner lo .nomedia .

Hoy, veo un error reportado:

 java.io.IOException: Cannot create: /sdcard/.hidden/file-4200.html at java.io.File.createNewFile(File.java:1263) 

En cuanto a la tarjeta SD, veo que tiene mucho espacio de almacenamiento, pero contando

 $ cd /Volumes/NO_NAME/.hidden $ ls | wc -w 9058 

La eliminación de varios archivos parece haber permitido la creación de archivos para hoy.

Lamentablemente, no intenté touch un nuevo archivo para intentar reproducir el error en una línea de comandos; También eliminé varios cientos de archivos en lugar de un puñado.

Sin embargo, mi pregunta es:

  • ¿Hay límites duros en filesize o número de archivos en un directorio?
  • Estoy incluso en el camino correcto aquí?

Nota Bene: La tarjeta SD es como es, es decir, no lo he formateado, así que supongo que sería un formato FAT- *.

El formato FAT-32 tiene límites de tamaño de archivo de 2GB (muy por encima de los filesizes 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.

3 Solutions collect form web for “¿Existe un límite para el número de archivos en un directorio de una tarjeta SD?”

Hay un límite en 512 entradas en el directorio raíz del sistema de archivos FAT. Este límite se produce porque el directorio raíz vive en un lugar determinado en sistemas de archivos FAT.

Para otros directorios este límite no está en su lugar. Además, FAT32 eliminó el límite de entrada de 512 para el sistema de archivos raíz tratando el directorio raíz del mismo modo que cualquier otro directorio.

El uso de nombres de archivo largos – es decir, no en el formato 8.3 – significa que un solo archivo utiliza varias entradas de directorio .

Algunos usuarios de Google encuentran que algunas personas afirman que un directorio FAT32 puede tener un máximo de 65.536 entradas (lo que sería menos archivos si tenían nombres de archivo largos). Sin embargo, ninguna de las fuentes que mencionaron este límite parecía tan confiable, así que pensé que probaría esto.

Escribí un script que crea archivos con 30 nombres de caracteres, lo que significa que cada archivo necesitaría 4 entradas de directorio. Cuando la escritura consiguió archivar 16.384 falló con un error del IO y no podría crear más archivos en mi directtoy de la prueba. Así que esto parece validar el límite de entrada de 65.536.

Si usted está alcanzando este límite en 9.000 archivos entonces sus archivos deben utilizar por lo menos 7 entradas cada uno que corresponde a los nombres de archivo que son por lo menos 66 caracteres de largo. ¿Esto coincide con lo que estás haciendo? (O usted podría tener algunos nombres de archivo cortos y algunos muy, muy largos, pero usted consigue la idea.)

Creo que el límite de archivos en un directorio en Fat32 también depende de la longitud de los nombres de archivo

http://www.microsoft.com/whdc/system/platform/firmware/fatgen.mspx

He hecho algunas pruebas más (pruebas confiables :-)), tratando de escribir 100.000 directorios de nombres cortos en un único directorio. El límite fue alcanzado en 65.536.

La prueba se hizo en Nexus One con Android 2.2, pero creo que el resultado es válido para cualquier tarjeta SD FAT32.

  • ¿Establecer ubicación de instalación para Android 1.6?
  • Si mi aplicación está instalada en la tarjeta SD, ¿también hay datos privados allí?
  • Abra una aplicación de cámara por intención y guardar la imagen en el SD y imageView
  • ¿Cómo implementar SD Card Gallery sin personalización en android?
  • Poner manualmente archivos en la tarjeta SD del emulador de Android
  • Cómo abrir un archivo PDF local en PhoneGap (android)
  • Android: carga la fuente personalizada en la tarjeta SD
  • Android abrir o crear base de datos
  • ¿Cómo puedo copia de seguridad de archivos sqlite en tarjeta SD mediante programación?
  • File.canWrite () dice "true" pero no puedo escribir en almacenamiento extraíble (kit kat)
  • Creación de un archivo zip con algunos archivos en SDCard
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.