Estoy trabajando en un proyecto y necesito una lista de todos los subdirectorios en un directorio, por ejemplo, ¿cómo podría una lista de todos los subdirectorios en c: \cómo listar todos los subdirectorios en un directorio
Respuesta
Uso Directory.GetDirectories
para obtener los subdirectorios del directorio especificado por "your_directory_path". El resultado es una matriz de cadenas.
var directories = Directory.GetDirectories("your_directory_path");
De forma predeterminada, eso solo devuelve subdirectorios de un nivel de profundidad. Hay opciones para devolver todo recursivamente y para filtrar los resultados, documented here, y se muestran en la respuesta de Clive.
evitar un UnauthorizedAccessException
Es muy posible que obtendrá un UnauthorizedAccessException
Si llega a un directorio en el que no tiene acceso.
Puede que tenga que crear su propio método que controla la excepción, así:
public class CustomSearcher
{
public static List<string> GetDirectories(string path, string searchPattern = "*",
SearchOption searchOption = SearchOption.TopDirectoryOnly)
{
if (searchOption == SearchOption.TopDirectoryOnly)
return Directory.GetDirectories(path, searchPattern).ToList();
var directories = new List<string>(GetDirectories(path, searchPattern));
for (var i = 0; i < directories.Count; i++)
directories.AddRange(GetDirectories(directories[i], searchPattern));
return directories;
}
private static List<string> GetDirectories(string path, string searchPattern)
{
try
{
return Directory.GetDirectories(path, searchPattern).ToList();
}
catch (UnauthorizedAccessException)
{
return new List<string>();
}
}
}
Y luego llamarlo así:
var directories = CustomSearcher.GetDirectories("your_directory_path");
de fácil:
string[] folders = System.IO.Directory.GetDirectories(@"C:\My Sample Path\","*", System.IO.SearchOption.AllDirectories);
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TRIAL
{
public class Class1
{
static void Main(string[] args)
{
string[] fileArray = Directory.GetDirectories("YOUR PATH");
for (int i = 0; i < fileArray.Length; i++)
{
Console.WriteLine(fileArray[i]);
}
Console.ReadLine();
}
}
}
FolderBrowserDialog fbd = new FolderBrowserDialog();
DialogResult result = fbd.ShowDialog();
string[] files = Directory.GetFiles(fbd.SelectedPath);
string[] dirs = Directory.GetDirectories(fbd.SelectedPath);
foreach (string item2 in dirs)
{
FileInfo f = new FileInfo(item2);
listBox1.Items.Add(f.Name);
}
foreach (string item in files)
{
FileInfo f = new FileInfo(item);
listBox1.Items.Add(f.Name);
}
si desea hacer una lista en un cuadro de lista y otorgarle al usuario que seleccione qué carpeta, sí, esta respuesta funciona. –
- 1. Listar los archivos en un directorio y todos los subdirectorios
- 2. Listar todos los archivos y directorios en un directorio + subdirectorios
- 3. Cómo obtener archivos en un directorio, incluidos todos los subdirectorios
- 4. PHP: Cómo listar los archivos en un directorio sin subdirectorios anuncio
- 5. Liste de manera eficiente todos los subdirectorios en un directorio
- 6. Listar todos los archivos (con rutas completas) en un directorio (y subdirectorios), ordenar por tiempo de acceso
- 7. Cómo gzip todos los archivos en todos los subdirectorios en un archivo comprimido en bash
- 8. CoffeeScript: compila todos los archivos .coffee en el directorio actual y en todos los subdirectorios
- 9. Agregue el grupo "Todos" al directorio y todos sus subdirectorios
- 10. Cómo descomprimir todos los archivos en todos los subdirectorios en bash
- 11. Listar todos los repositorios SVN
- 12. Listar todos los archivos abiertos
- 13. iterar recursivamente sobre todos los archivos en un directorio y sus subdirectorios en Qt
- 14. Listar los archivos en un directorio del archivo JAR actual
- 15. CMake: ¿Cómo obtener el nombre de todos los subdirectorios de un directorio?
- 16. Listar todos virtualenv
- 17. Forma no recursiva de obtener todos los archivos en un directorio y sus subdirectorios en Java
- 18. obtener todos los subdirectorios inmediatos en ruby
- 19. Código de Python para encontrar todos los archivos recién creados, modificados y eliminados en todos los directorios/subdirectorios desde/directory
- 20. Eliminar todos los archivos en un directorio sin subdirectorios con Apache Ant
- 21. Listar todos los discos duros en un sistema Linux
- 22. Ejecutar git pull over en todos los subdirectorios
- 23. ¿Cómo puedo encontrar todos los subdirectorios inmediatos del directorio actual en Linux?
- 24. Recursivamente incluyendo todos los subdirectorios modelo
- 25. Bash/Shell: ¿mueve todos los archivos de los subdirectorios al directorio de destino?
- 26. Eliminar carpeta y todos los archivos/subdirectorios
- 27. Listar todos los objetos de cierta clase
- 28. Cómo obtener todos los subdirectorios inmediatos en Python
- 29. ASP.NET MVC Listar todos los usuarios
- 30. Listar todos los archivos ResourceBundle disponibles
¿aún no lanzaría una Access Access no autorizada y * no * obtendría el resto de las carpetas? –
@ J.Doe Atraviesa un directorio y todos sus subdirectorios recursivamente. Si llega a un subdirectorio al que no puede acceder, algo que hubiera arrojado una 'UnauthorizedAccessException', capta la excepción y simplemente devuelve una lista vacía para ese directorio inaccesible. Luego continúa al siguiente subdirectorio. –