Pular para o conteúdo principal

Obter a lista de nomes de todos os arquivos de um diretório (file.list)

Declaração

lista_de_arquivos, mensagem_de_erro = file.list(caminho_do_diretório [, percorrer_subdiretórios_completamente])

Parâmetros

  • caminho do diretório
    Texto; caminho absoluto do diretório.
  • percorrer subdiretórios completamente (compatível a partir da versão 20250313)
    Booleano opcional; define se os subdiretórios serão percorridos recursivamente e uma lista de caminhos completos será retornada. O padrão é false.

Valores retornados

  • lista de arquivos
    Array sequencial ou nil; retorna nil se o diretório não existir ou se o caminho for um arquivo, caso contrário retorna a lista de arquivos do diretório.
  • mensagem de erro
    Texto; mensagem de erro em caso de falha.

Observações

Obtém a lista de nomes de todos os arquivos de um diretório.

Exemplo

local list, err = file.list("/var/mobile/")
if list then
print("目录 `/var/mobile/` 中有"..#list.."个文件或目录")
for _, name in ipairs(list) do
print(name)
end
sys.alert(print.out())
else
sys.alert("`/var/mobile/` 不是目录:"..err)
end

Observação: o código acima usa a função sys.alert, que não pertence a este capítulo.

Exemplo de percurso completo em profundidade

-- lista de caminhos completos = file.list(caminho_do_diretório, percorrer_subdiretórios_completamente)
-- obtém a lista de nomes de um diretório; o segundo parâmetro controla se os caminhos completos dos arquivos dos subdiretórios serão obtidos recursivamente. O padrão é false
list = file.list("/var/mobile/Media/1ferver", true)
nLog(list)
--[[
possível saída
{ -- table: 0xc4cc58a30
[1] = "/var/mobile/Media/1ferver/snippets/syntax - do __ end.snippet",
[2] = "/var/mobile/Media/1ferver/snippets/app - app.uninstall(bid).snippet",
[3] = "/var/mobile/Media/1ferver/snippets/test - snippet.snippet",
...
}
--]]

Observação: o código acima usa a função nLog, que não pertence a este capítulo.