From 07553e51fa9bebea746e53e9aeb7ecfcc42d629b Mon Sep 17 00:00:00 2001 From: Matchman Green Date: Mon, 28 May 2012 00:36:02 +0800 Subject: [PATCH] ignore file and folders with '/' --- libgrive/src/drive/Drive.cc | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/libgrive/src/drive/Drive.cc b/libgrive/src/drive/Drive.cc index df6ec18..f05ed2f 100644 --- a/libgrive/src/drive/Drive.cc +++ b/libgrive/src/drive/Drive.cc @@ -97,9 +97,14 @@ Drive::Drive( OAuth2& auth ) : if ( entry.Kind() != "folder" ) { Resource *parent = m_state.FindByHref( entry.ParentHref() ) ; - if ( entry.Filename().empty() ) + std::string fn = entry.Filename() ; + + if ( fn.empty() ) Log( "file \"%1%\" is a google document, ignored", entry.Title(), log::verbose ) ; + else if ( fn.find('/') != fn.npos ) + Log( "file \"%1%\" contains a slash in its name, ignored", entry.Title(), log::verbose ) ; + else if ( parent == 0 || !parent->IsInRootTree() ) Log( "file \"%1%\" parent doesn't exist, ignored", entry.Title(), log::verbose ) ; @@ -145,11 +150,14 @@ void Drive::ConstructDirTree( http::Agent *http ) Entry e( *i ) ; if ( e.Kind() == "folder" ) { - if ( e.ParentHrefs().size() == 1 ) - m_state.FromRemote( e ) ; - - else + if ( e.ParentHrefs().size() != 1 ) Log( "folder \"%1%\" has multiple parents, ignored", e.Title(), log::warning ) ; + + else if ( e.Title().find('/') != std::string::npos ) + Log( "folder \"%1%\" contains a slash in its name, ignored", e.Title(), log::verbose ) ; + + else + m_state.FromRemote( e ) ; } }