diff --git a/SD/picofs.c b/SD/picofs.c
index 0878e487adf8ee367c15c86943215c4f6a9b2846..ba75910f6dd190900d8171ef549ca407c6f59b59 100755
--- a/SD/picofs.c
+++ b/SD/picofs.c
@@ -254,7 +254,7 @@ void TYPE(SD_info *sd, char *filename, char *data) {
     int block_counter = 1; //compteur de blocs utilisés
     int index_in_descrBlock = 0;
     int offset;
-
+    int append_command = -1;
 
     if (sizeFilename > MAX_FILENAME_LENGTH) {
         printf("\nImpossible de créer le fichier, nom trop long\n");
@@ -265,7 +265,19 @@ void TYPE(SD_info *sd, char *filename, char *data) {
     for (int blockNum = 0; blockNum < MAX_BLOCKS_IN_SUPERBLOCK; blockNum += 16) {
         readBlock(sd,blockNum, 0, buffer, MAX_FILENAME_LENGTH);
         // Vérifier si le bloc est vide (pas de nom de fichier)
-        if (buffer[0] == 0) {
+        if (strncmp(buffer,filename,strlen(filename))==0) //si même nom de fichier alors on concatenne les data
+        {
+            append_command = 1;
+            char append_description_buffer[CHUNK_SIZE]; // récupère le numéro du bloc dans la description
+            char append_buffer[CHUNK_SIZE]; //récupère les données finales à écrire dans le bloc de donnée
+            readBlock(sd, blockNum+1, 0, append_description_buffer, 2);
+            int dataBlockNum = reconstituteNumber(append_description_buffer);
+            readBlock(sd, dataBlockNum, 0, append_buffer, CHUNK_SIZE);
+            strcat(append_buffer, data); //former les données finales
+            writeBlock(sd, dataBlockNum, 0, append_buffer, CHUNK_SIZE); // écrire dans bloc de donnée, rien à fiare dans description
+            break;
+        }
+        else if (buffer[0] == 0) {
             // Écrire le nom du fichier dans l'emplacement vide du superbloc
             if (sizeFilename < MAX_FILENAME_LENGTH) {
                 sizeFilename += 1; // Ajouter '\0' s'il y a de la place
@@ -336,7 +348,8 @@ void TYPE(SD_info *sd, char *filename, char *data) {
     if (placeFound != -1) {
         printf("Le fichier \"%s\" a été créé avec succès.\n", filename);
     } else {
-        printf("Plus de place dans le système de fichier pour créer ce fichier.\n");
+        if(append_command == 1) printf("Les données ont été concaténées dans le fichier %s\n",filename);
+        else printf("Plus de place dans le système de fichier pour créer ce fichier.\n");
     }