Aller au contenu

Tâche Create File / Dir

Résumé

  • Nom interne : CreateDir
  • Catégorie : File System
  • Objectif : Créer un fichier ou un dossier (récursivement) dans le 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 Create File / Dir crée soit un fichier, soit un dossier, selon le type sélectionné. Les dossiers parents sont créés récursivement si besoin.

Toutes les tâches File System sont confinées au bac à sable AndroMate : /sdcard/AndromateFileTask. Un chemin relatif est résolu dans le bac à sable ; un chemin absolu doit y rester. Toute tentative d'en sortir (ex. avec ../) est rejetée 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
create_type Enum / String Non Directory ou File Android 13 (API 33) → Android 16 (API 36) 1.1.0 → 1.1.0 Directory
file_path String Oui Chemin dans le bac à sable (interpolation supportée) Android 13 (API 33) → Android 16 (API 36) 1.1.0 → 1.1.0 ""

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([▶ CreateDir]) --> Jail[📂 Création du bac à sable]

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

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

    Type -->|File| MkFile[📄 createFile]
    Type -->|Directory| MkDir[📁 createDir]

    MkFile --> Success([✅ VoidResult])
    MkDir --> Success

    style Start fill:#e3f2fd
    style Success fill:#c8e6c9
    style Throw fill:#ffcdd2
    style Jail fill:#fff9c4
    style Validate 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 (anti path-traversal)
  3. Création : un fichier (createFile) ou un dossier (createDir) est créé, parents inclus
  4. Résultat : retourne VoidResult

Exemples de code

Exemple 1 — Créer un dossier

{
  "CreateDir": [
    {
      "id": "1",
      "title": "Créer dossier rapports",
      "create_type": "Directory",
      "file_path": "reports/2026"
    }
  ]
}

Exemple 2 — Créer un fichier vide

{
  "CreateDir": [
    {
      "id": "2",
      "title": "Créer fichier log",
      "create_type": "File",
      "file_path": "logs/result.log"
    }
  ]
}

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

create_type — Quoi créer

  • Directory → crée un dossier (récursivement)
  • File → crée un fichier vide (dossiers parents créés si besoin)

file_path — Chemin cible

Chemin dans le bac à sable. Un chemin relatif (reports/2026) est résolu sous /sdcard/AndromateFileTask. Supporte l'interpolation $variable.


Détails des paramètres de sortie

Cette tâche ne produit aucune variable de sortie.


Exemple JSON complet

{
  "CreateDir": [
    {
      "id": "1",
      "title": "Create File / Dir",
      "create_type": "Directory",
      "file_path": "reports/2026"
    }
  ]
}