diff --git a/src/kio_gdrive.cpp b/src/kio_gdrive.cpp --- a/src/kio_gdrive.cpp +++ b/src/kio_gdrive.cpp @@ -857,14 +857,16 @@ error(KIO::ERR_ACCESS_DENIED, dest.path()); return; } + + QString destDirId; const auto destPathComps = destGDriveUrl.pathComponents(); - if (destGDriveUrl.isAccountRoot()) { - // copy to root + const QString destFileName = destPathComps.last(); + if (destPathComps.size() == 2) { + destDirId = rootFolderId(destAccountId); } else { - const QString destDirId = destPathComps[destPathComps.count() - 2]; - destParentReferences << ParentReferencePtr(new ParentReference(destDirId)); + destDirId = resolveFileIdFromPath(destGDriveUrl.parentPath(), KIOGDrive::PathIsFolder); } - const QString destFileName = destPathComps.last(); + destParentReferences << ParentReferencePtr(new ParentReference(destDirId)); FilePtr destFile(new File); destFile->setTitle(destFileName);