El problema principal radica en una solución muy sencilla
LEER LA AYUDA DE AMS, de una manera muy frustrante puedo asegurar que es mínima la cantidad de personas que leen la ayuda de AMS, un ejemplo, esta duda. Leyendo el apartado de
Action Reference en la categoría FILE en
File.Find en el punto
Returns (Resultados, Devoluciones) dice:
Return
(table) A table containing the paths to all of the files that were found. If no files were found or an error occurs, nil is returned. You can use Application.GetLastError to determine whether this action failed, and why.
Note: If IncludeFolders is true, the result will always include the folders that were encountered during the search.
El valor que retorna la función es
una tabla que contiene todas las rutas de archivos que coincidieron con los argumentos establecidos, si no se encontró ninguna coincidencia devuelve nil.
Ahora bien, sabiendo esto puedes trabajar con los datos, ya sabes que una tabla, cierto?
El código que da Pabloko es el tratamiento correcto de la información que está en la ayuda.
documents = File.Find(folder, "*.doc", true, true, nil, nil) -- Se ejecuta la función
-- Con una sentencia if
if (documents~=nil) then -- El valor retornado es una tabla o nil en caso de no haber encontrado coincidencias, aquí nos aseguramos de que el valor devuelto no sea nil
print("Archivos encontrados: "..#documents)
for _, path in ipairs(documents ) do -- Con un bucle for obtenemos los valores de los índices de la tabla
print("Archivo: "..path) -- path es el valor de un indice de la tabla, recordando que cada indice contiene la ruta de los archivos coincidentes.
end
else
--no files found
end