зеркало из https://github.com/nextcloud/desktop.git
PropagateDownload: Read the mtime from the file system after writing it
Because file system like FAT only have two second accuracy and would result in a upload if the mtime in the database is not the same as the one that was downloaded Issue #3103
This commit is contained in:
Родитель
3f3f27d4d3
Коммит
458f336405
|
@ -519,10 +519,14 @@ void PropagateDownloadFileQNAM::downloadFinished()
|
|||
_tmpFile.setPermissions(existingFile.permissions());
|
||||
}
|
||||
|
||||
FileSystem::setFileHidden(_tmpFile.fileName(), false);
|
||||
FileSystem::setModTime(_tmpFile.fileName(), _item._modtime);
|
||||
// We need to fetch the time again because some file system such as FAT have a less than a second
|
||||
// Accuracy, and we really need the time from the file system. (#3103)
|
||||
_item._modtime = FileSystem::getModTime(_tmpFile.fileName());
|
||||
|
||||
QString error;
|
||||
_propagator->addTouchedFile(fn);
|
||||
FileSystem::setFileHidden(_tmpFile.fileName(), false);
|
||||
if (!FileSystem::renameReplace(_tmpFile.fileName(), fn, &error)) {
|
||||
qDebug() << Q_FUNC_INFO << QString("Rename failed: %1 => %2").arg(_tmpFile.fileName()).arg(fn);
|
||||
// If we moved away the original file due to a conflict but can't
|
||||
|
@ -543,7 +547,6 @@ void PropagateDownloadFileQNAM::downloadFinished()
|
|||
|
||||
// Maybe we downloaded a newer version of the file than we thought we would...
|
||||
// Get up to date information for the journal.
|
||||
FileSystem::setModTime(fn, _item._modtime);
|
||||
_item._size = FileSystem::getSize(fn);
|
||||
|
||||
_propagator->_journal->setFileRecord(SyncJournalFileRecord(_item, fn));
|
||||
|
|
Загрузка…
Ссылка в новой задаче