#name=flash_dir.py
import uos

def list_flash_contents():
    print("==================================================")
    print("       CONTENU DE LA MEMOIRE FLASH (RP2040)       ")
    print("==================================================")
    
    try:
        files = uos.listdir()
    except Exception as e:
        print("Erreur lors de la lecture du répertoire:", e)
        return

    total_files_size = 0
    file_count = 0
    
    if not files:
        print("Aucun fichier trouvé dans la Flash.")
    else:
        print(f"{'Nom du fichier':<22} | {'Taille (octets)':<15}")
        print("-" * 42)
        for f in files:
            try:
                # uos.stat()[6] retourne la taille du fichier en octets
                file_size = uos.stat(f)[6]
                total_files_size += file_size
                file_count += 1
                print(f"{f:<22} | {file_size:<15}")
            except:
                print(f"{f:<22} | [Dossier/Inconnu]")
        print("-" * 42)
        print(f"Total fichiers : {file_count} ({total_files_size} octets)")

    # Calcul de l'espace libre / restant sur la partition Flash
    try:
        stat = uos.statvfs('/')
        block_size = stat[0]
        total_blocks = stat[2]
        free_blocks = stat[3]
        
        total_size_kb = (block_size * total_blocks) / 1024
        free_size_kb = (block_size * free_blocks) / 1024
        
        print(f"Espace total   : {total_size_kb:.2f} Ko")
        print(f"Espace restant : {free_size_kb:.2f} Ko")
    except Exception as e:
        print("Erreur lecture statvfs:", e)

    print("==================================================")

if __name__ == "__main__":
    list_flash_contents()