public void ReadAndCompairDirectories() { Utility.Belt utilBelt = new Utility.Belt(); try { utilBelt.WriteToFile("BackUp Start: " + Convert.ToString(DateTime.Now)); try { this.RecursiveSearch_NewAndUpdated(this._origDir, "*.*"); } catch (Exception e) { utilBelt.WriteToFile(Environment.NewLine + "Error Occured 'NewAndUpdated' With Exception: " + e.ToString()); } try { this.RecursiveSearch_Deleted(this._copyDir, "*"); } catch (Exception x) { utilBelt.WriteToFile(Environment.NewLine + "Error Occured 'Deleted' With Exception: " + x.ToString()); } } finally { utilBelt.WriteToFile("BackUp Completed: " + Convert.ToString(DateTime.Now)); } }
private void RecursiveSearch_NewAndUpdated(string path, string pattern) { string[] folders = System.IO.Directory.GetDirectories(path); string[] patternFiles = System.IO.Directory.GetFiles(path, pattern); Utility.Belt utilBelt = new Utility.Belt(); if (path.Substring(path.Length - 1, 1) != @"\") { path += @"\"; } string minusRootDir = utilBelt.RemoveRootDir(path, this._origDir); if (!Directory.Exists(this._copyDir + minusRootDir)) { Directory.CreateDirectory(this._copyDir + minusRootDir); utilBelt.WriteToFile("Created Directory: " + this._copyDir + minusRootDir); } foreach (string file in patternFiles) { FileInfo fileInfo = new FileInfo(file); if (!System.IO.File.Exists(this._copyDir + minusRootDir + fileInfo.Name.ToString())) { fileInfo.CopyTo(this._copyDir + minusRootDir + fileInfo.Name.ToString()); utilBelt.WriteToFile("Copied: " + file); } else { FileInfo copyFileInfo = new FileInfo(this._copyDir + minusRootDir + fileInfo.Name.ToString()); if ((copyFileInfo.Length != fileInfo.Length) | (copyFileInfo.LastWriteTime != fileInfo.LastWriteTime)) { fileInfo.CopyTo(this._copyDir + minusRootDir + fileInfo.Name.ToString(), true); utilBelt.WriteToFile("Updated: " + file); } } } foreach (string folder in folders) { try { this.RecursiveSearch_NewAndUpdated(folder, "*.*"); } catch (Exception ex) { utilBelt.WriteToFile("Error Occured Opening Folder With Exception: " + ex.ToString()); } } }
private void RecursiveSearch_Deleted(string path, string pattern) { bool okayToProceed = true; string[] folders = System.IO.Directory.GetDirectories(path); string[] patternFiles = System.IO.Directory.GetFiles(path, pattern); Utility.Belt utilBelt = new Utility.Belt(); if (path.Substring(path.Length - 1, 1) != @"\") { path += @"\"; } string minusRootDir = utilBelt.RemoveRootDir(path, this._copyDir); if (!Directory.Exists(this._origDir + minusRootDir)) { Directory.Delete(this._copyDir + minusRootDir, true); okayToProceed = false; utilBelt.WriteToFile("Delted Directory: " + this._copyDir + minusRootDir); } if (okayToProceed) { foreach (string file in patternFiles) { FileInfo fileInfo = new FileInfo(file); if (!System.IO.File.Exists(this._origDir + minusRootDir + fileInfo.Name.ToString())) { fileInfo.Delete(); utilBelt.WriteToFile("Deleted: " + file); } } foreach (string folder in folders) { try { this.RecursiveSearch_Deleted(folder, "*.*"); } catch (Exception ex) { utilBelt.WriteToFile("Error Occured Opening Folder For Deleted Search With Exception: " + ex.ToString()); } } } }