/// <summary> /// get all information for a remote directory from the Dropbox metadata /// </summary> private async Task <SyncedDirectory> SniffRemoteDirectory(Metadata remoteDirectory) { var result = new SyncedDirectory { Name = remoteDirectory.Name, RemoteDeleted = remoteDirectory.IsDirectory }; foreach (var child in remoteDirectory.Contents) { if (child.IsDirectory) { //contents are not downloaded recursively for subdirs, do it now var childFromDropbox = await _dropboxClient.GetMetaDataWithDeleted(child.Path); result.AddDir(await SniffRemoteDirectory(childFromDropbox)); } else { result.AddFile(SniffRemoteFile(child)); } } return(result); }
/// <summary> /// get all information for a remote directory from the Dropbox metadata /// </summary> private async Task<SyncedDirectory> SniffRemoteDirectory(Metadata remoteDirectory) { var result = new SyncedDirectory { Name = remoteDirectory.Name, RemoteDeleted = remoteDirectory.IsDirectory }; foreach (var child in remoteDirectory.Contents) { if (child.IsDirectory) { //contents are not downloaded recursively for subdirs, do it now var childFromDropbox = await _dropboxClient.GetMetaDataWithDeleted(child.Path); result.AddDir(await SniffRemoteDirectory(childFromDropbox)); } else { result.AddFile(SniffRemoteFile(child)); } } return result; }
private SyncedDirectory GetLocalSyncState(DirectoryInfo dir) { var result = new SyncedDirectory { Name = dir.Name }; foreach (var subDir in dir.GetDirectories()) { result.AddDir(GetLocalSyncState(subDir)); } foreach (var file in dir.GetFiles()) { result.AddFile(new SyncedFile { Name = file.Name, LocalDirectory = file.DirectoryName, CurrentSyncTimestamp = { Local = file.LastWriteTimeUtc } }); } return(result); }