From ea4fda5b54368e29f1b87476f78537cb15503dcc Mon Sep 17 00:00:00 2001 From: Nestal Wan Date: Thu, 14 Jun 2012 01:42:41 +0800 Subject: [PATCH] fix recursively add folder (#59) --- libgrive/src/drive/Resource.cc | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/libgrive/src/drive/Resource.cc b/libgrive/src/drive/Resource.cc index b260826..47f5e8f 100644 --- a/libgrive/src/drive/Resource.cc +++ b/libgrive/src/drive/Resource.cc @@ -235,11 +235,17 @@ void Resource::FromLocal( const DateTime& last_sync ) // root folder is always in sync if ( !IsRoot() ) { + m_mtime = os::FileCTime( path ) ; + + // follow parent recursively + if ( m_parent->m_state == local_new || m_parent->m_state == local_deleted ) + m_state = local_new ; + // if the file is not created after last sync, assume file is // remote_deleted first, it will be updated to sync/remote_changed // in FromRemote() - m_mtime = os::FileCTime( path ) ; - m_state = ( m_mtime > last_sync ? local_new : remote_deleted ) ; + else + m_state = ( m_mtime > last_sync ? local_new : remote_deleted ) ; m_name = path.filename().string() ; m_kind = fs::is_directory(path) ? "folder" : "file" ;