Scheda SD e codici IR

Salve a tutti!
Sto cercando di scrivere un programma che tramite un sensore IR legge i codici dei telecomandi e li salva su una scheda SD, ma ho un problema: nel file che crea non salva i codici, mentre sulla seriale li visualizzo, in cosa sbaglio?
Ecco il codice che utilizzo:

#include <IRremote.h>
#include <IRremoteInt.h>
#include <SD.h>

int RECV_PIN = 8;

IRrecv irrecv(RECV_PIN);
File file;

decode_results results;


void setup() 
  {
   irrecv.enableIRIn();
   Serial.begin(9600);
   Serial.println("Inizializzazione scheda SD...");
   pinMode(10,OUTPUT);
   if (!SD.begin(4))
     {
      Serial.println("Avvio dell'SD fallito!");
      return;
     }
   Serial.println("Avvio dell'SD completato");
   file = SD.open("codici.txt", FILE_WRITE);
   file.write("### CODICI IR ###\n");
   file.close();
   }
void loop() 
  {
    if (irrecv.decode(&results)) 
      {
        file = SD.open("codici.txt", FILE_WRITE);
        if (SD.exists("codici.txt"))
          {
           file.write(results.value+"\n");
           file.close();
           Serial.println(results.value);
           Serial.println("Scrittura Eseguita");
          }
       else
          {
           Serial.println("errore nell'apertura del file");
          }
      irrecv.resume(); 
      }
  }

Grazie in anticipo per le risposte!