表題の通り、ファイルをコピーしようとした時に、Permission deniedがでると、なにやらフォルダのアクセス権限に問題あるのかと思ったりしますが、これはcopyfile関数の誤解されやすい仕様です。
コマンドラインでファイルコピーになれている人は、ついつい
- コピー元ファイル名、コピー先ディレクトリ
 
という発想をしがちでですが、この第2引数をディレクトリにしてしまうとこのエラーが出るようです。
- コピー元ファイル名、コピー先ファイル名
 
というように、いずれの引数もファイル名まで指定しましょう。