.NETではそれなりのファイルコピーが用意されてるっぽいね

ユーザーインターフェイスを表示するためにUIOption.AllDialogsを指定し(デフォルトでは表示されない)、
ユーザーがキャンセルしても例外(IOException)をスローしないようにUICancelOption.DoNothingを指定し(デフォルトでは、例外がスローされる)

//参照にMicrosoft.VisualBasic.dllが追加されている必要がある
Microsoft.VisualBasic.FileIO.FileSystem.CopyFile(
"C:\test.txt", "C:\test1.txt",
FileIO.UIOption.AllDialogs, FileIO.UICancelOption.DoNothing);

ttp://dobon.net/vb/dotnet/file/filecopy.html