diff --git a/src/libsync/discovery.cpp b/src/libsync/discovery.cpp index 47b4f2cf5..a24cb4d68 100644 --- a/src/libsync/discovery.cpp +++ b/src/libsync/discovery.cpp @@ -510,11 +510,13 @@ void ProcessDirectoryJob::processFileAnalyzeRemoteInfo( && item->_type == ItemTypeFile && opts._vfs->mode() != Vfs::Off && _pinState != PinState::AlwaysLocal -#ifdef Q_OS_WIN - && !FileSystem::isLnkFile(path._server) -#endif ) { item->_type = ItemTypeVirtualFile; +#ifdef Q_OS_WIN + if(FileSystem::isLnkFile(path._server)) { + item->_type = ItemTypeVirtualFileDownload; + } +#endif if (isVfsWithSuffix()) addVirtualFileSuffix(tmp_path._original); } diff --git a/src/libsync/syncengine.cpp b/src/libsync/syncengine.cpp index 086da5cac..f6a23261a 100644 --- a/src/libsync/syncengine.cpp +++ b/src/libsync/syncengine.cpp @@ -345,11 +345,7 @@ void OCC::SyncEngine::slotItemDiscovered(const OCC::SyncFileItemPtr &item) rec._serverHasIgnoredFiles |= prev._serverHasIgnoredFiles; // Ensure it's a placeholder file on disk - if (item->_type == ItemTypeFile -#ifdef Q_OS_WIN - && !FileSystem::isLnkFile(filePath) -#endif - ) { + if (item->_type == ItemTypeFile) { const auto result = _syncOptions._vfs->convertToPlaceholder(filePath, *item); if (!result) { item->_instruction = CSYNC_INSTRUCTION_ERROR; diff --git a/src/libsync/vfs/cfapi/vfs_cfapi.cpp b/src/libsync/vfs/cfapi/vfs_cfapi.cpp index c9d05ce07..b5b2cb9e2 100644 --- a/src/libsync/vfs/cfapi/vfs_cfapi.cpp +++ b/src/libsync/vfs/cfapi/vfs_cfapi.cpp @@ -196,7 +196,9 @@ bool VfsCfApi::statTypeVirtualFile(csync_file_stat_t *stat, void *statData) stat->type = ItemTypeVirtualFileDownload; return true; } else if (!isSparseFile && isUnpinned){ - stat->type = ItemTypeVirtualFileDehydration; + if (!FileSystem::isLnkFile(stat->path)) { + stat->type = ItemTypeVirtualFileDehydration; + } return true; } else if (isSparseFile) { stat->type = ItemTypeVirtualFile;