public void sync(DirectoryInfo source, DirectoryInfo destination) { Folder folderSource = new Folder(source.FullName); Folder folderDestination = new Folder(destination.FullName); if (!folderSource.exists()) { Log.log("source folder {0} does not exist", source.FullName); return; } folderSource.sync(folderDestination, comparer); }
public void sync(Folder destination, FileComparer comparer) { destination.createIfNoneExist(); destination.refresh(); DirectoryInfo folder = new DirectoryInfo(path); if ((folder.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden) { Log.trace("folder {0} is hidden", folder.FullName); return; } folder.Refresh(); if (!folder.Exists) { //Console.WriteLine("{0} does not exist", folder.FullName); return; } foreach (FileInfo file in folder.GetFiles()) { if ((file.Attributes & FileAttributes.Hidden)== FileAttributes.Hidden) { Log.trace("{0} is hidden", file.FullName); continue; } FileInfo destFile = destination.findFile(file.Name); if (comparer.match(file, destFile)) { if (CurrentMode.TransferMode == Mode.Normal) { Log.trace("{0} ===> {1} === exist", file.FullName, destFile.FullName); } continue ; } fileCopy.copy(file, destFile); } foreach (DirectoryInfo child in folder.GetDirectories()) { string newPath = Path.Combine(destination.path, child.Name); Folder childDestination = new Folder(newPath); Folder childSource = new Folder(child.FullName); childSource.sync(childDestination, comparer); } }