Aller au contenu

Tâche Write File

Résumé

  • Nom interne : WriteFile
  • Catégorie : File System
  • Objectif : Écrire ou ajouter du texte dans un fichier du bac à sable de fichiers AndroMate.
  • Type de tâche : Normale

Compatibilité

  • Version AndroMate minimale : 1.1.0

  • Version AndroMate maximale : 1.1.0

  • Android minimum : Android 13 (API 33)

  • Android testé maximum : Android 16 (API 36)

  • Permissions requises : MANAGE_EXTERNAL_STORAGE


Description détaillée

La tâche Write File écrit du texte dans un fichier. Le fichier (et ses dossiers parents) est créé automatiquement s'il n'existe pas. Trois modes d'écriture sont disponibles : écraser, ajouter, ou ajouter avec un saut de ligne final.

Toutes les tâches File System sont confinées au bac à sable AndroMate : /sdcard/AndromateFileTask. Un chemin sortant du bac à sable est rejeté avec FILE-TASK-001. Le dossier du bac à sable est créé automatiquement à la première utilisation.


Paramètres d'entrée

Paramètre Type Requis Valeurs possibles / Règles Compatibilité Android Compatibilité AndroMate Défaut
file_path String Oui Chemin du fichier dans le bac à sable (interpolation supportée) Android 13 (API 33) → Android 16 (API 36) 1.1.0 → 1.1.0 ""
content String Oui Texte à écrire (interpolation supportée) Android 13 (API 33) → Android 16 (API 36) 1.1.0 → 1.1.0 ""
mode Enum / String Non Overwrite, Append, Append Line Android 13 (API 33) → Android 16 (API 36) 1.1.0 → 1.1.0 Overwrite

Paramètres de sortie

Cette tâche ne produit aucune variable de sortie. Elle retourne un VoidResult en cas de succès.


Exceptions

Code Condition de déclenchement
FILE-TASK-001 Le chemin est hors du bac à sable AndroMate
FILE-TASK-002 Échec de l'opération système de fichiers (erreur I/O)

Diagramme d'exécution

flowchart TD
    Start([▶ WriteFile]) --> Jail[📂 Création du bac à sable]

    Jail --> Validate{Chemin dans le bac à sable ?}

    Validate -->|Non| Throw([❌ FILE-TASK-001])
    Validate -->|Oui| Mode{Mode ?}

    Mode -->|Overwrite| W1[✍️ writeText remplace]
    Mode -->|Append| W2[➕ writeText ajoute]
    Mode -->|Append Line| W3[↵ writeLine ajoute + newline]

    W1 --> Success([✅ VoidResult])
    W2 --> Success
    W3 --> Success

    style Start fill:#e3f2fd
    style Success fill:#c8e6c9
    style Throw fill:#ffcdd2
    style Jail fill:#fff9c4
    style Mode fill:#fff9c4

Fonctionnement :

  1. Bac à sable : le dossier du bac à sable est créé s'il manque
  2. Validation : le chemin résolu est vérifié comme étant dans le bac à sable
  3. Écriture : le contenu est écrit selon le mode choisi (fichier créé si absent)
  4. Résultat : retourne VoidResult

Exemples de code

Exemple 1 — Écraser un fichier

{
  "WriteFile": [
    {
      "id": "1",
      "title": "Sauver config",
      "file_path": "config.json",
      "content": "{ \"enabled\": true }",
      "mode": "Overwrite"
    }
  ]
}

Exemple 2 — Ajouter une ligne de log

{
  "WriteFile": [
    {
      "id": "2",
      "title": "Logger étape",
      "file_path": "logs/run.log",
      "content": "Étape $i terminée",
      "mode": "Append Line"
    }
  ]
}

Détails des paramètres d'entrée

file_path — Fichier cible

Chemin dans le bac à sable. Créé automatiquement (avec parents) si absent. Supporte l'interpolation.

content — Texte à écrire

Le texte écrit dans le fichier. Supporte l'interpolation $variable et ${SPECIAL_VAR}.

mode — Mode d'écriture

  • Overwrite → remplace tout le contenu du fichier
  • Append → ajoute le contenu à la fin (sans saut de ligne)
  • Append Line → ajoute le contenu à la fin plus un saut de ligne (idéal pour les logs)

Détails des paramètres de sortie

Cette tâche ne produit aucune variable de sortie.


Exemple JSON complet

{
  "WriteFile": [
    {
      "id": "1",
      "title": "Write File",
      "file_path": "logs/result.log",
      "content": "Job $job_name terminé",
      "mode": "Append Line"
    }
  ]
}