CmisSync.Lib.Sync.CmisRepo.SynchronizedFolder.DownloadDirectory C# (CSharp) Method

DownloadDirectory() private method

Download a single folder from the CMIS server, by simple recursive copy.
private DownloadDirectory ( IFolder remoteFolder, string remotePath, string localFolder ) : bool
remoteFolder IFolder
remotePath string
localFolder string
return bool
            private bool DownloadDirectory(IFolder remoteFolder, string remotePath, string localFolder)
            {
                SleepWhileSuspended();
                try
                {
                    // Create local folder.
                    Directory.CreateDirectory(localFolder);

                    if (remoteFolder.CreationDate != null)
                    {
                        Directory.SetCreationTime(localFolder, (DateTime)remoteFolder.CreationDate);
                    }
                    if (remoteFolder.LastModificationDate != null)
                    {
                        Directory.SetLastWriteTime(localFolder, (DateTime)remoteFolder.LastModificationDate);
                    }
                }
                catch (Exception e)
                {
                    ProcessRecoverableException("Could not create directory: " + localFolder, e);
                    return false;
                }

                // Create database entry for this folder
                var syncFolderItem = database.GetFolderSyncItemFromRemotePath(remoteFolder.Path);
                if (null == syncFolderItem)
                {
                    syncFolderItem = SyncItemFactory.CreateFromRemoteFolder(remoteFolder.Path, repoInfo, database);
                }
                database.AddFolder(syncFolderItem, remoteFolder.Id, remoteFolder.LastModificationDate);
                Logger.Info("Added folder to database: " + localFolder);

                // Recurse into folder.
                RecursiveFolderCopy(remoteFolder, remotePath, localFolder);

                return true;
            }