Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Obtener el número de archivos en un directorio y sus subdirectorios

Usando este código

new File("/mnt/sdcard/folder").listFiles().length 

Devuelve una suma de carpetas y archivos en un directorio en particular sin preocuparse por los subdirectorios . Quiero obtener el número de todos los archivos en un directorio y sus subdirectorios.

PS: no importa si devuelve una suma de todos los archivos y carpetas.

Cualquier ayuda apreciada, gracias

  • Cómo corregir la advertencia proguard 'no se puede encontrar el método de referencia' para los métodos existentes 'clonar' y 'finalizar' de la clase java.lang.Object
  • Copia el directorio de los activos a la carpeta de datos
  • JSON elemento de verificación Java es un JSONArray o JSONObject
  • ¿Cómo utilizo el convertidor Gson en RetroFit?
  • Alternativas compactas a Java ArrayList <String>
  • ¿Cómo configurar la dependencia de Maven para Guice 3.0 para uso sin AOP?
  • Cómo configurar OnClickListener para ScrollView?
  • No se puede escribir un algoritmo para filtrar elementos en un RecyclerView basado en un tiempo guardado con cada elemento
  • 11 Solutions collect form web for “Obtener el número de archivos en un directorio y sus subdirectorios”

    Prueba esto.

     int count = 0; getFile("/mnt/sdcard/folder/"); private void getFile(String dirPath) { File f = new File(dirPath); File[] files = f.listFiles(); if (files != null) for (int i = 0; i < files.length; i++) { count++; File file = files[i]; if (file.isDirectory()) { getFile(file.getAbsolutePath()); } } } 

    Puede ayudarte.

    Puede utilizar la recursión.

     public static int getFilesCount(File file) { File[] files = file.listFiles(); int count = 0; for (File f : files) if (f.isDirectory()) count += getFilesCount(f); else count++; return count; } 
     public Integer countFiles(File folder, Integer count) { File[] files = folder.listFiles(); for (File file: files) { if (file.isFile()) { count++; } else { countFiles(file, count); } } return count; } 

    Uso:

     Integer count = countFiles(new File("your/path"), Integer.valuOf(0)); 

    Uso de Java 8 NIO:

     import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; public class Test { public long fileCount(Path dir) { return Files.walk(dir) .parallel() .filter(p -> !p.toFile().isDirectory()) .count(); } public void main(String... args) { Path dir = Paths.get(args[0]); long count = fileCount(dir); System.out.println(args[0] + " has " + count + " files"); } } 

    Usted tendrá que hacer una búsqueda recursiva sobre sus archivos. Utilice `File # isDrirectory () 'para comprobar si un archivo es un directorio y recorrer el árbol de archivos hacia abajo.

    Tienes que ir a pesar de toda la carpeta recursivamente y averiguar los archivos

     int mCount; getTotalFiles(File dir) { File[] files = dir.listFiles(); for (File file : files) { if (file.isDirectory()) { getTotalFiles(file); } else { mCount++; } } } 

    Algo que he utilizado antes, puede editarlo fácilmente para obtener lo que desea:

     public class Filewalker { public void walk( String path ) { File root = new File( path ); File[] list = root.listFiles(); for ( File f : list ) { if ( f.isDirectory() ) { walk( f.getAbsolutePath() ); System.out.println( "Dir:" + f.getAbsoluteFile() ); } else { System.out.println( "File:" + f.getAbsoluteFile() ); } } } public static void main(String[] args) { Filewalker fw = new Filewalker(); fw.walk("c:\\" ); } } 

    Aquí hay un breve todo encapsulado dentro de un solo método simplemente devolviendo el número de archivos y directorios dentro de un directorio específico:

     public static int countFiles(File directory) { int count = 0; for (File file : directory.listFiles()) { if (file.isDirectory()) { count += countFiles(file); } count++; } return count; } 

    ¡Aclamaciones!

     public int numberOfFiles(File srcDir) { int count = 0; File[] listFiles = srcDir.listFiles(); for(int i = 0; i < listFiles.length; i++){ if (listFiles[i].isDirectory()) { count += numberOfFiles(listFiles[i]); } else if (listFiles[i].isFile()) { count++; } } return count; } 

    http://www.java2s.com/Code/Java/File-Input-Output/Countfilesinadirectoryincludingfilesinallsubdirectories.htm

     public static int countFilesInDirectory(File directory) { int count = 0; for (File file : directory.listFiles()) { if (file.isFile()) { count++; } if (file.isDirectory()) { count += countFilesInDirectory(file); } } return count; } 

    Referir este sitio

    Da una respuesta perfecta

     import java.io.File; import java.util.Scanner; public class Test { public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.println("Enter the Path for Directory/Folder Name"); String Directory=sc.nextLine(); System.out.println("Your Directory/folder is :"+Directory); File f = new File(Directory); int countFiles = 0; int countDirectory=0; for (File file : f.listFiles()) { if (file.isFile()) { countFiles++; } if (file.isDirectory()) { countDirectory++; } } System.out.println("Number of files in Directory : " + countFiles+"\nNumber of Sub-directories "+countDirectory); } } 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.