How to know that File.Copy succeeded?

Aan picture Aan · Oct 29, 2011 · Viewed 36.6k times · Source

The static method File.Copy(String, String) doesn't return a value. How can I know programatically if that function succeeded or not ? If there is no thrown exception, File.Copy goes well. But I am asking about how to put "no exception" as a condition.

Something like this:

if(no exception happened){

//my code goes here

}

Edit: I have solved the problem using a simple counter as following:

int i=0;
try{
    File.Copy();
}
catch(e1){
    i++;
}
catch(e2){
    i++;
}

if(i==0){
    //my code goes here
}

Thanks for all contributors. I will go through your answers to choose the best.

Answer

Nasreddine picture Nasreddine · Oct 29, 2011

If the operation doesn't throw any exception, it means that it was successful. The list of the possible exceptions is available here :

UnauthorizedAccessException

  • The caller does not have the required permission.

ArgumentException

  • sourceFileName or destFileName is a zero-length string, contains only white space, or contains one or more invalid characters as defined by InvalidPathChars.

  • -or-

  • sourceFileName or destFileName specifies a directory.

ArgumentNullException

  • sourceFileName or destFileName is null.

PathTooLongException

  • The specified path, file name, or both exceed the system-defined maximum length. For example, on Windows-based platforms, paths must be less than 248 characters, and file names must be less than 260 characters.

DirectoryNotFoundException

  • The path specified in sourceFileName or destFileName is invalid (for example, it is on an unmapped drive).

FileNotFoundException

  • sourceFileName was not found.

IOException

  • destFileName exists.

  • -or-

  • An I/O error has occurred.

NotSupportedException

  • sourceFileName or destFileName is in an invalid format.