private void ResolveDifferencesWithServer(SyncDir diff, DirectoryInfo dir) { //Copies over Files if (diff.Files != null) { foreach (SyncFile f in diff.Files) { byte[] buffer = File.ReadAllBytes(dir.FullName + Path.DirectorySeparatorChar + f.Name); _sync.SendFileToServer(accountId, f.BuildPath(), buffer); } } //Copies over Directories and recalls ResolveDifferencesWithServer to copy over directores/files within if (diff.Directories != null) { int dim = diff.Directories.Count(); //foreach (SyncDir d in diff.Directories) foreach (SyncDir d in diff.Directories) { DirectoryInfo sub1 = new DirectoryInfo(dir.FullName + Path.DirectorySeparatorChar + d.Name); DirectoryInfo sub = new DirectoryInfo(@"C:\temp\TestServerStorage" + Path.DirectorySeparatorChar + accountId.ToString() + Path.DirectorySeparatorChar + dir.Name + Path.DirectorySeparatorChar + d.Name); if (!sub.Exists) sub.Create(); ResolveDifferencesWithServer(d, sub1); } } }
private void ResolveDifferencesWithServer(SyncDir diff, DirectoryInfo dir) { if (diff.Files != null) { foreach (SyncFile f in diff.Files) { byte[] buffer = File.ReadAllBytes(dir.FullName + Path.DirectorySeparatorChar + f.Name); _sync.SendFileToServer(accountId, f.BuildPath(), buffer); } } if (diff.Directories != null) { foreach (SyncDir d in diff.Directories) { DirectoryInfo sub = new DirectoryInfo(dir.FullName + Path.DirectorySeparatorChar + d.Name); if (!sub.Exists) sub.Create(); ResolveDifferencesWithServer(d, sub); } } }
private void ResolveDifferencesWithLocal(SyncDir diff, DirectoryInfo dir) { if (diff.Files != null) { foreach (SyncFile f in diff.Files) { byte[] buffer = _sync.GetFileFromServer(accountId, f.BuildPath()); File.WriteAllBytes(dir.FullName + Path.DirectorySeparatorChar + f.Name, buffer); } } if (diff.Directories != null) { foreach (SyncDir d in diff.Directories) { DirectoryInfo sub = new DirectoryInfo(dir.FullName + Path.DirectorySeparatorChar + d.Name); if (!sub.Exists) sub.Create(); ResolveDifferencesWithLocal(d, sub); } } }