The account that the "assembly" is running under must have permissions to do what your asking it to do.
Either that or you must have a portion of the code in your assembly begin running under the context of a user that does have these permissions to do the copy.
This really has nothing to do with SQL server. Its simply does the account executing the code have the permission to do what your telling it to do.