Encuentra un archivo con una cierta extensión en la carpeta

Dada una ruta de carpeta (como C:\Random Folder ), ¿cómo puedo encontrar un archivo que contenga una cierta extensión, como txt ? Supongo que tendré que hacer una búsqueda de *.txt en el directorio, pero no estoy seguro de cómo debo comenzar esta búsqueda en primer lugar.

Mire la clase System.IO.Directory y el método estático GetFiles . Tiene una sobrecarga que acepta una ruta y un patrón de búsqueda. Ejemplo:

  string[] files = System.IO.Directory.GetFiles(path, "*.txt"); 

Podría usar la clase Directorio

  Directory.GetFiles(path, "*.txt", SearchOption.AllDirectories) 

Es bastante fácil, en realidad. Puede usar la clase System.IO.Directory junto con System.IO.Path . Algo así como (usar LINQ lo hace aún más fácil):

 var allFilenames = Directory.EnumerateFiles(path).Select(p => Path.GetFileName(p)); // Get all filenames that have a .txt extension, excluding the extension var candidates = allFilenames.Where(fn => Path.GetExtension(fn) == ".txt") .Select(fn => Path.GetFileNameWithoutExtension(fn)); 

También hay muchas variaciones en esta técnica, por supuesto. Algunas de las otras respuestas son más simples si su filtro es más simple. Éste tiene la ventaja de la enumeración retrasada (si eso importa) y un filtrado más flexible a expensas de más código.

El siguiente método devuelve solo los archivos con cierta extensión (p. Ej .: archivo con .txt pero no .txt1)

 public static IEnumerable GetFilesByExtension(string directoryPath, string extension, SearchOption searchOption) { return Directory.EnumerateFiles(directoryPath, "*" + extension, searchOption) .Where(x => string.Equals(Path.GetExtension(x), extension, StringComparison.InvariantCultureIgnoreCase)); } 

Según mi entendimiento, esto se puede hacer de dos maneras:

1) Puede usar Directory Class con el método Getfiles y recorrer todos los archivos para verificar nuestra extensión requerida.

Directory.GetFiles (“ruta_carpeta_de_la_carpeta) [i] .Contiene (” * .txt “)

2) Puede usar Path Class con el método GetExtension, que toma la ruta del archivo como parámetro y verifica la extensión. Para obtener la ruta del archivo, solo tiene una condición de bucle que recuperará un solo archivo y devolverá el archivo que se puede usar para la verificación.

Path.GetExtension (your_file_path) .Equals (“. Json”)

Nota: Tanto la lógica tiene que estar dentro de una condición de bucle.

Use este código para leer el archivo con todo tipo de archivo de extensión.

 string[] sDirectoryInfo = Directory.GetFiles(SourcePath, "*.*");