Tenho uma pasta que contém MUITOS arquivos, e ela é não “carregável” e muito difícil de pesquisar qualquer arquivo nela. Porém preciso obter o ultimo arquivo salvo / escrito nesta pasta. Utilizei a expressão que normalmente usamos para pegar o ultimo arquivo de uma pasta e usei a função take(5) para só pegar os 5 primeiros, mas também não funcionou. Poderiam sugerir alternativas?
Obrigada
Esta expressão irá obter o arquivo mais recente:
str_filepath = Directory.GetFiles(caminho_da_sua_pasta, “*.txt”).OrderByDescending(Function(d) New FileInfo(d).CreationTime).ToList(0)
Did you try using for each file in folder activity and the use ordeby in it and you can use break after the first loop only so that it stops after first
@amanda.gondim
Se o método de iterar por todos os caminhos de arquivo e comparar os horários de última gravação estiver levando muito tempo para uma pasta com milhares de arquivos, você pode tentar uma abordagem alternativa usando a classe DirectoryInfo no UiPath. Veja como você pode implementar:
Use a atividade Assign para atribuir o caminho da pasta a uma variável. Vamos chamá-la de folderPath.
Crie uma variável do tipo DirectoryInfo para representar a pasta. Por exemplo, folderInfo = New DirectoryInfo(folderPath).
Use o método GetFiles da classe DirectoryInfo para recuperar todos os arquivos da pasta, ordenados por seu horário de última gravação em ordem decrescente. Atribua o resultado a uma variável, por exemplo, files = folderInfo.GetFiles().OrderByDescending(Function(f) f.LastWriteTime).ToArray().
Verifique se o array files possui algum elemento. Se sim, o primeiro elemento (files(0)) conterá o arquivo mais recente na pasta. Você pode acessar o caminho completo dele usando files(0).FullName.
Ao usar a classe DirectoryInfo e ordenar os arquivos pelo horário de última gravação diretamente, você pode experimentar um desempenho melhor em comparação com o método anterior.