Organizations typically choose a full private index of DCIM for three primary reasons:
Apache and many other servers have directory listing enabled by default in some distributions. If a developer uploads a privatedcim folder but forgets to put an index.html inside, the "Index of" page becomes publicly accessible.
Most "private" DCIM folders end up online due to technical oversights rather than intentional sharing:
fun scanDcimRoot(root: File): List<DCIMEntry> val results = mutableListOf<DCIMEntry>() root.walkTopDown().onEnter directory -> if (directory.name in skipList) return@onEnter false true .filter it.isFile && isMediaFile(it) .forEach file -> val exif = ExifInterface(file) results += DCIMEntry(... from file and exif ...)