How are you defining corrupted? Typically, all that it means is that the file does not contain as much usable data as you expected.
So try to find in the file where it has written the last character
That's what the open() method does, when called that way. It finds the EOF in the file, and positions the write cursor at that location.
i will use this now, when file does exist
logFile = SD.open(fullName, O_APPEND| O_WRITE); //First open file
if (!logFile) // if file cannot be opened and/or the EOF could not be found logFile==false
in this case i will make a new file