File comes in over EDI as .today. I need to change it to .txt and move it to another folder. Everything works just fine for about 3-5 files, then starts throwing exceptions. I tried handling those, but that doesn't solve the problem. I'm also getting sporadic (filename cannot be null) exceptions as well. I just can't seem to figure this out.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Diagnostics;
using System.Threading;
using System.Windows.Forms;
using System.Security.Permissions;
namespace FileConverterService
{
    class ConverterService
    {
        //Configure watcher & input
        private FileSystemWatcher _watcher;
        public bool Start()
        {
            _watcher = new FileSystemWatcher(@"C:\FTP_base\temp", "*.today");
            _watcher.Created += new FileSystemEventHandler(FileCreated);
            _watcher.IncludeSubdirectories = false;
            _watcher.EnableRaisingEvents = true;
            return true;
        }
        //Configure output creation and append file name to include .txt extension
        [PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
        private void FileCreated(object sender, FileSystemEventArgs e)
        {
            try
            {
                string dateTime = DateTime.Now.ToString("yyyyMMddHHmmssfff");
                string content = File.ReadAllText(e.FullPath);
                string upperContent = content.ToUpperInvariant();
                var dir = Path.GetDirectoryName(e.FullPath);
                var convertedFileName = Path.GetFileName(e.FullPath) + dateTime + ".txt";
                var convertedPath = Path.Combine(dir, convertedFileName);
                File.WriteAllText(convertedPath, upperContent);
            }
            catch (IOException f)
            {
                if (f is IOException)
                {
                    MessageBox.Show("Exception Caught"); //was just testing
                }
            }
            MoveConvert();
        }
        //Move converted file to EDI processing folder
        public static void MoveConvert()
        {
            try { 
            string dateTime = DateTime.Now.ToString("yyyyMMddHHmmssfff");
            string rootFolderPath = @"C:\FTP_base\temp\";
            string moveTo = @"C:\FTP_base\INbound\inbound_" + dateTime + ".txt";
            //string moveTo = @"F:\FTP_base\Office Depot\INbound\inbound_" + dateTime + ".txt";
            string filesToMove = @"*.txt";   // Only move .txt
            string myfile2 = System.IO.Directory.GetFiles(rootFolderPath, filesToMove).FirstOrDefault();
            string fileToMove = myfile2;
            //moving file
            File.Move(fileToMove, moveTo);
                MoveOriginal();
            }
            catch (IOException e)
            {
                if (e is IOException)
                {
                    MessageBox.Show("File already exists."); //was just testing
                }
            }
        }
        public static void MoveOriginal()
        {
            try { 
            string dateTime = DateTime.Now.ToString("yyyyMMddHHmmssfff");
            string rootFolderPath2 = @"C:\FTP_base\temp\";
            string moveTo2 = @"C:\FTP_base\archive\archive_" + dateTime + ".archive";
            //string moveTo2 = @"F:\Xcelerator_EDI\OfficeDepot\DataFiles\Inbound\Archive2\archive_" + dateTime + ".archive";
            string filesToMove2 = @"*.today";   // Only move .today
            string myfile = System.IO.Directory.GetFiles(rootFolderPath2, filesToMove2).FirstOrDefault();
            //foreach (string file in fileList)
            string fileToMove2 = myfile;
            //moving file
            File.Move(fileToMove2, moveTo2);
            }
            catch (IOException e)
            {
                if (e is IOException)
                {
                    MessageBox.Show("IO Exception Occurred"); //was just testing
                }
            }
        }
        //Stop Service control
        public bool Stop()
        {
            _watcher.Dispose();
            return true;
        }
    }
}