I gave you links to show you how to validate a few things first that would throw exceptions. You have to start with those. Use the Directory and File classes that exist within the System.IO namespace. A try/catch is not the only way... You just need to know what throws these exceptions. CopyDirectory is irrelevant here, if you're expecting a single function to handle all exceptions for you, then that's an idea to get rid of at this point in time.
If you know that in order to copy a file to another location requires that the file you are moving exists, and the output path exists, and that you have permissions to carry out the action, then it's obvious to see what checks need to be done before you even move the file to prevent an exception from being thrown. What you're doing is expecting the method that moves the file to take care of all of this for you.
For instance, I already provided a link to a few pieces of documentation for you. File.Exists() checks if the file at the specified filepath exists, and Directory has many of the same methods that the File class has, but more geared towards directories instead of files.
I never had the intention of using System.IO from the start. I'm aware the namespace exists and that this is how someone would normally copy files/directories back and forth using c#. I hear what you're saying and I'm already familiar with the concepts you are bringing to the table.
I understand how to work with exceptions, how to check if a file exists, etc. You're saying that I should of done all these things using the System.IO namespace rather than using VisualBasic.FileIO. I get that. I get that you can use if/else statements for exception handling. You're preaching to the quire.
The argument is how would you(otherwise than how I've done) handle an exception from the 'CopyDirectory' function? You can't. You can't do an if/else; it's try/catch or nothing in this case.
I'm aware that I didn't do any validation before the file copy and that I handled the exception in a dirty way. If I had been using System.IO from the start, we wouldn't be having this conversation.
Just because this is my first c# program, does not mean I don't have programming experience.
The script is short and sweet, and does what I need it to(with or without it's flaws). End of story.
I do however, appreciate both you and Kulv's suggestions on how to make it better. I don't however enjoy arguing about what the 'right' way to do something is. I don't always do what is considered the 'right' way, as that's not always what is most important(in my opinion).