nombre variable en archivos en SD SOLUCIANADO

el código de mi programa es el siguiente, funciona muy bien pero crea de manera infinita el datalog en un mismo archivo, y lo que necesito es que cree un archivo nuevo cada día, podría ser con un dato que ya obtengo como la fecha, la cual se almacena en la variable String palabra7 en fin espero que me puedan ayudar
desde ya gracias

#include <SD.h>
const int chipSelect = 53;
int error = 13;
int numChar = 0;
char incomingByte = 0;
int cantPalabras = 1;
String palabra1 = "";
String palabra2 = "";
String palabra3 = "";
String palabra4 = "";
String palabra5 = "";
String palabra6 = "";
String palabra7 = "";
String palabra8 = "";
String palabra9 = "";
String palabra10 = "";
String palabra11 = "";
String palabra12 = "";
String palabra13 = "";
String palabra14 = "";
String palabra15 = "";

void setup() {
pinMode(error, OUTPUT);
Serial.begin(19200);
Serial.print("Iniciando tarjeta SD...");
pinMode(53, OUTPUT);

if (!SD.begin(chipSelect)) {
Serial.println("Error en Tarjeta");
digitalWrite(error, HIGH);
return;
}
Serial.println("Tarjeta OK.");
digitalWrite(error, LOW);
}

void loop(){
while (Serial.available()>0){
numChar = Serial.read();
incomingByte = numChar;
if (numChar==32){
cantPalabras++;
}
if (numChar==80){
cantPalabras++;
}
if (numChar==109){
cantPalabras++;
}
if (numChar!=13 && numChar!=10 && numChar!=32 && numChar!=80 && numChar!=109 && numChar!=102){
if(cantPalabras==1){
palabra1 = palabra1+incomingByte;
}
if(cantPalabras==2){
palabra2 = palabra2+incomingByte;
}
if(cantPalabras==3){
palabra3 = palabra3+incomingByte;
}
if(cantPalabras==4){
palabra4 = palabra4+incomingByte;
}
if(cantPalabras==5){
palabra5 = palabra5+incomingByte;
}
if(cantPalabras==6){
palabra6 = palabra6+incomingByte;
}
if(cantPalabras==7){
palabra7 = palabra7+incomingByte;
}
if(cantPalabras==8){
palabra8 = palabra8+incomingByte;
}
if(cantPalabras==9){
palabra9 = palabra9+incomingByte;
}
if(cantPalabras==10){
palabra10 = palabra10+incomingByte;
}
if(cantPalabras==11){
palabra11 = palabra11+incomingByte;
}
if(cantPalabras==12){
palabra12 = palabra12+incomingByte;
}
if(cantPalabras==13){
palabra13 = palabra13+incomingByte;
}
if(cantPalabras==14){
palabra14 = palabra14+incomingByte;
}
}
if(numChar==102){//102 es f representa final de cadena
delay(100);
File dataFile = SD.open("Registro.txt", FILE_WRITE);
if (dataFile) {
}
Serial.print(palabra7);
dataFile.print(palabra7);
Serial.print(" ");
dataFile.print(" ");
Serial.print(palabra10);
dataFile.print(palabra10);
Serial.print(" H2S=");
dataFile.print(" H2S=");
Serial.print(palabra3);
dataFile.print(palabra3);
Serial.print("mCH4=");
dataFile.print("CH4=");
Serial.print(palabra5);
dataFile.print(palabra5);
Serial.print(palabra6);
dataFile.print(palabra6);
Serial.println("m ");
dataFile.println("m ");
dataFile.close();
palabra1 = "";
palabra2 = "";
palabra3 = "";
palabra4 = "";
palabra5 = "";
palabra6 = "";
palabra7 = "";
palabra8 = "";
palabra9 = "";
palabra10= "";
palabra11 = "";
palabra12 = "";
palabra13 = "";
palabra14 = "";
palabra15 = "";
cantPalabras = 1;
Serial.flush();
}

}
}