This type of exception is also thrown when a file is being used by another process although I could not find any other differentiation of this case from the others except parsing IOException.Message which might be inappropriate and inefficient in terms of compatibility with future versions of .Net framework.