diff --git a/src/filenode.c b/src/filenode.c index a4dfcf3..bc1a4ad 100644 --- a/src/filenode.c +++ b/src/filenode.c @@ -496,23 +496,19 @@ FileNode FileNode_Refresh(FileNode fileNode, char *filePath) { FileNode fileNodeChild; // Check directory data - if (fileNode->status == FileStatus_Deleted) { - fileNode->status = FileStatus_Modified; - fileNode->fileTime = Time_GetCurrentTime(); - } if (!(fileNode->flags & FileFlag_Directory)) { fileNode->status = FileStatus_Modified; fileNode->flags |= FileFlag_Directory; fileNode->flags &= ~FileFlag_Normal; } fileTime = FileTime_Get(filePath); + if (fileNode->status == FileStatus_Deleted) { + fileNode->status = FileStatus_Modified; + fileNode->fileTime = fileTime; + } if (fileTime != fileNode->fileTime) { fileNode->status = FileStatus_Modified; - if (fileTime < 0 || fileNode->fileTime > fileTime) { - fileNode->fileTime = Time_GetCurrentTime(); - }else{ - fileNode->fileTime = fileTime; - } + fileNode->fileTime = fileTime; } // Mark childs for review @@ -536,10 +532,6 @@ FileNode FileNode_Refresh(FileNode fileNode, char *filePath) { } } else { // Comprar datos de los ficheros - if (fileNode->status == FileStatus_Deleted) { - fileNode->status = FileStatus_Modified; - fileNode->fileTime = Time_GetCurrentTime(); - } if (!(fileNode->flags & FileFlag_Normal)) { fileNode->status = FileStatus_Modified; fileNode->flags |= FileFlag_Normal; @@ -550,13 +542,13 @@ FileNode FileNode_Refresh(FileNode fileNode, char *filePath) { fileNode->status = FileStatus_Modified; fileNode->size = size; } + if (fileNode->status == FileStatus_Deleted) { + fileNode->status = FileStatus_Modified; + fileNode->fileTime = fileTime; + } if (fileTime != fileNode->fileTime) { fileNode->status = FileStatus_Modified; - if (fileTime < 0 || fileNode->fileTime > fileTime) { - fileNode->fileTime = Time_GetCurrentTime(); - }else{ - fileNode->fileTime = fileTime; - } + fileNode->fileTime = fileTime; } if (fileNode->status == FileStatus_Modified) { fileNode->flags &= ~FileFlag_HasCRC; diff --git a/tests/test_MoveToSubdirAndRestore.cmd b/tests/test_MoveToSubdirAndRestore.cmd index b6103c9..47154b9 100644 --- a/tests/test_MoveToSubdirAndRestore.cmd +++ b/tests/test_MoveToSubdirAndRestore.cmd @@ -18,16 +18,10 @@ echo:Uno> %testDir%.A\Uno.txt echo:Dos> %testDir%.A\Dos.txt ..\filesync.exe sync %testDir%.A %testDir%.B >> %testDir%.txt -..\filesync.exe read %testDir%.A/nodesFile.fs >> %testDir%.txt -..\filesync.exe read %testDir%.B/nodesFile.fs >> %testDir%.txt - md %testDir%.A\dirUno move %testDir%.A\Uno.txt %testDir%.A\dirUno\Uno.txt >NUL ..\filesync.exe sync %testDir%.A %testDir%.B >> %testDir%.txt -..\filesync.exe read %testDir%.A/nodesFile.fs >> %testDir%.txt -..\filesync.exe read %testDir%.B/nodesFile.fs >> %testDir%.txt - ping 127.0.0.1 -n 2 > nul move %testDir%.A\dirUno\Uno.txt %testDir%.A\Uno.txt >NUL