Skip to content

Module Lua lfs

Le module lfs (Lua File System) permet de gérer le système de fichiers local.

Import

Pour importer le module en Lua :

local lfs = require("lfs")

Configuration YAML

Le module lfs est disponible par défaut et ne nécessite aucune configuration dans le fichier YAML de l'agent.

API Lua

Liste des fonctions

Fonction Signature Lua Rôle Retour (succès) Retour (échec)
attributes attr, err = lfs.attributes(path[, aname]) Récupère les attributs d'un fichier. table/value, nil nil, "msg"
chdir bool, err = lfs.chdir(path) Change le répertoire courant. true, nil nil, "msg"
currentdir path, err = lfs.currentdir() Retourne le répertoire courant. string, nil nil, "msg"
dir iter = lfs.dir(path) Itère sur un répertoire. iterator
mkdir bool, err = lfs.mkdir(path) Crée un répertoire. true, nil nil, "msg"
rmdir bool, err = lfs.rmdir(path) Supprime un répertoire. true, nil nil, "msg"
touch bool, err = lfs.touch(path[, atime[, mtime]]) Modifie les timestamps. true, nil nil, "msg"

lfs.attributes(path[, aname])

Récupère les attributs d'un fichier ou répertoire.

  • Paramètres :
  • path (string) : Chemin du fichier ou répertoire.
  • aname (string, optionnel) : Nom d'un attribut spécifique à retourner.

  • Retour :

  • Une table contenant les attributs (ou la valeur d'un attribut si aname est spécifié).
  • nil, "<message d'erreur>" en cas d'échec.

Attributs disponibles : dev, ino, mode, nlink, uid, gid, rdev, access, modification, change, size, blocks, blksize.

lfs.dir(path)

Retourne un itérateur pour parcourir un répertoire.

  • Paramètres :
  • path (string) : Chemin du répertoire à parcourir.

  • Retour :

  • Un itérateur Lua.

lfs.mkdir(path) / lfs.rmdir(path)

Crée ou supprime un répertoire.

  • Paramètres :
  • path (string) : Chemin du répertoire.

  • Retour :

  • true, nil en cas de succès.
  • nil, "<message d'erreur>" en cas d'échec.

lfs.currentdir() / lfs.chdir(path)

Retourne ou change le répertoire de travail courant.

Exemples d'utilisation Lua

L'exemple suivant itère sur un répertoire et liste récursivement les attributs de chaque fichier à l'intérieur.

local lfs = require("lfs")

function attrdir (path)
    for file in lfs.dir(path) do
        if file ~= "." and file ~= ".." then
            local f = path..'/'..file
            print("\t "..f)
            local attr = lfs.attributes(f)
            assert (type(attr) == "table")
            if attr.mode == "directory" then
                attrdir (f)
            else
                for name, value in pairs(attr) do
                    print (name, value)
                end
            end
        end
    end
end

attrdir (".")

Champs Lua associés

  • lfs.name : Nom de l'instance (identique au champ name si configuré).
  • lfs.type : Type du module ("lfs").