Dada una ruta de carpeta (como C: \ Carpeta aleatoria), ¿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 se supone que debo comenzar esta búsqueda en primer lugar.Buscar un archivo con una cierta extensión en la carpeta
Respuesta
Observe 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");
Usted podría utilizar la clase Directory
Directory.GetFiles(path, "*.txt", SearchOption.AllDirectories)
Esto no funciona si la extensión sería algo como txt_ o cualquier otra cosa como se indica en la documentación https://msdn.microsoft.com/en-us/library/wz42302f(v=vs.110).aspx –
Es bastante fácil, en realidad. Puede usar la clase System.IO.Directory
junto con System.IO.Path
. Algo así como (usando LINQ hace que sea 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));
Hay muchas variaciones sobre esta técnica también, 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.
Gracias por todo el trabajo extra que puso en esto. Sin embargo, solo estoy buscando una declaración simple ya que solo tengo un archivo de texto en el directorio (fue extraído por mi programa). – DMan
el método siguiente sólo devuelve los archivos con extensión determinada (por ejemplo: archivo con .txt pero no .txt1)
public static IEnumerable<string> 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 entender, 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 ("your_folder_path) [i] .Contains (" *. Txt ")
2) Se puede utilizar la clase Camino con getExtension método que toma la ruta del archivo como parámetro y verifica la extension.To obtener la ruta del archivo, simplemente tiene una condición de bucle que va a traer un solo archivo y devolver la ruta de archivo que puede ser utilizado 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.
Utilice este código para leer el archivo con todo tipo de archivo de extensión.
string[] sDirectoryInfo = Directory.GetFiles(SourcePath, "*.*");
- 1. Buscar recursivamente archivos con una extensión específica
- 2. ¿Cómo encontrar todos los archivos con cierta extensión en Android?
- 3. Cómo buscar la carpeta
- 4. Buscar el archivo más antiguo en una carpeta usando PHP
- 5. ¿Encontrar todos los archivos con cierta extensión en Unix?
- 6. Buscar todos los archivos en una carpeta
- 7. ¿Cómo obtener la lista de archivos con una extensión específica en una carpeta determinada?
- 8. En Python, la forma más rápida de crear una lista de archivos en un directorio con una cierta extensión
- 9. Excluir una extensión de archivo en System.IO.Directory.GetFiles()
- 10. Buscar la carpeta windows programáticamente en C#
- 11. Buscar la carpeta más reciente en un directorio en Python
- 12. ¿Cómo copio archivos con una extensión de archivo específica a una carpeta en mi script python (versión 2.5)?
- 13. Buscar y renombrar archivos sin extensión?
- 14. buscar y reemplazar cadena en un archivo
- 15. Retire la extensión del archivo en Java
- 16. Buscar diálogo de carpeta
- 17. ¿Buscar existencia de archivos en la carpeta androids assets?
- 18. ¿Cómo buscar un archivo javascript en google?
- 19. Buscar un archivo en python
- 20. ¿Qué es un archivo con extensión .a?
- 21. ¿Hay alguna manera de buscar los atributos que comienzan con una cierta cadena en HTML
- 22. ¿Cómo puedo obtener una lista de todos los archivos con una cierta extensión desde un directorio específico?
- 23. Cómo copiar un archivo de una carpeta a otra carpeta
- 24. ¿Cómo puedo verificar la extensión de un archivo con Perl?
- 25. fuentes desactivar buscar una carpeta específica en NetBeans 7.1 RC2
- 26. Asociar la extensión de archivo con la aplicación en wp7.1
- 27. ¿Usa el archivo tar.gz como una carpeta?
- 28. Guardar archivo con la aplicación mac - extensión de archivo
- 29. ¿Buscar una cadena para una subcadena en un archivo por lotes (Windows)?
- 30. ¿Cómo puedo crear un archivo temporal con una extensión específica en bash?
¡Gracias! Todas las respuestas fueron buenas, pero primero respondiste así que ... sí :) – DMan
Esto no funciona si la extensión sería algo así como txt_. Estoy tratando de determinar si hay algún archivo * .exe en una carpeta, y solo tengo un archivo * .exe_, pero la consulta lo devuelve, lo que no es correcto. – Adrian
La documentación: https://msdn.microsoft.com/en-us/library/8he88b63(v=vs.110).aspx –