I can't see anything specifically wrong with the code you have posted. My suggestion would be to try using a StreamWriter, take a look at File.AppendText - this method opens the file once and closes it at the end, rather than open-closing for each line written. The excessive file handling operations may be causing a problem for you, and the StreamWriter will be more efficient in any case.
Also, just had the thought that the Delete of file 2 might be happening before the ReadAllText has finished handling the file. You might try removing that line to test, or adding a delay in before it.