Respostas:
Observe a System.IO.Directory
classe e o método estático GetFiles
. Ele tem uma sobrecarga que aceita um caminho e um padrão de pesquisa. Exemplo:
string[] files = System.IO.Directory.GetFiles(path, "*.txt");
macos.txt
Você pode usar a classe Directory
Directory.GetFiles(path, "*.txt", SearchOption.AllDirectories)
É bem fácil, na verdade. Você pode usar a System.IO.Directory
classe em conjunto com System.IO.Path
. Algo como (usar LINQ torna tudo ainda mais 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));
Existem muitas variações desta técnica, é claro. Algumas das outras respostas são mais simples se o seu filtro for mais simples. Este tem a vantagem de enumeração atrasada (se isso importa) e filtragem mais flexível em detrimento de mais código.
O método abaixo retorna apenas os arquivos com determinada extensão (por exemplo: arquivo com .txt mas não .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));
}
Pelo meu entendimento, isso pode ser feito de duas maneiras:
1) Você pode usar a classe de diretório com o método Getfiles e percorrer todos os arquivos para verificar nossa extensão necessária.
Directory.GetFiles ("your_folder_path) [i] .Contains (" *. Txt ")
2) Você pode usar a classe Path com o método GetExtension que pega o caminho do arquivo como parâmetro e verifica a extensão. Para obter o caminho do arquivo, basta ter uma condição de loop que irá buscar um único arquivo e retornar o caminho do arquivo que pode ser usado para verificação.
Path.GetExtension (your_file_path) .Equals (". Json")
Nota: Ambas as lógicas devem estar dentro de uma condição de loop.
Use este código para ler o arquivo com todos os tipos de arquivos de extensão.
string[] sDirectoryInfo = Directory.GetFiles(SourcePath, "*.*");