code: def copyto(self,
                 new_abspath=None,
                 new_dirpath=None,
                 new_dirname=None,
                 new_basename=None,
                 new_fname=None,
                 new_ext=None,
                 overwrite=False,
                 makedirs=False):
          
          self.assert_exists()
  
          p = self.change(
              new_abspath=new_abspath,
              new_dirpath=new_dirpath,
              new_dirname=new_dirname,
              new_basename=new_basename,
              new_fname=new_fname,
              new_ext=new_ext,
          )
  
          if p.is_not_exist_or_allow_overwrite(overwrite=overwrite):
              # 如果两个路径不同, 才进行copy
              if self.abspath != p.abspath:
                  try:
                      shutil.copy(self.abspath, p.abspath)
                  except IOError as e:
                      if makedirs:
                          os.makedirs(p.parent.abspath)
                          shutil.copy(self.abspath, p.abspath)
                      else:
                          raise e
          return p
docs: Copy this file to other place.