Allora, tocca capire il problema.
Primo, l'Arraylist iniziale contiene una lista di percorsi o una lista che unita in una stringa compone il percorso?
Ipotesi, la lista contiene tanti elementi che compongono il percorso.
Soluzione 1.
Scommetto che è passata a riga di comando, i percorsi con spazio passati a riga di comando vanno passati fra doppio apice, es. "C:\Programs Fiels\Pippo.txt"
In questo modo non si porrà più il problema.
Soluzione 2.
Tu sei arrivato fino a questo punto:
string[] pathFinale = (string[])path.ToArray(typeof(string));
Il passo successivo è
string pathFinale2 = String.Join("", pathFinale);
Ovviamente puoi mettere come primo argomento quello che vuoi.
Ciao