public @NotNull VirtualFile copy(final Object requestor, final @NotNull VirtualFile newParent, @NotNull @NonNls String copyName) throws IOException {
    if (getFileSystem() != newParent.getFileSystem()) {
      throw new IOException(CoreBundle.message("file.copy.error", newParent.getPresentableUrl()));
    }

    if (!newParent.isDirectory()) {
      throw new IOException(CoreBundle.message("file.copy.target.must.be.directory"));
    }

    return EncodingRegistry.doActionAndRestoreEncoding(this,
                                                       () -> getFileSystem().copyFile(requestor, this, newParent, copyName));
  }
public @NotNull VirtualFile copy(final Object requestor, final @NotNull VirtualFile newParent, @NotNull @NonNls String copyName)