102 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			102 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Collections.Generic;
 | |
| using System.Text;
 | |
| using System.IO;
 | |
| using System.Xml.Serialization;
 | |
| 
 | |
| namespace SyncMany
 | |
| {
 | |
| 	[XmlRoot("SyncFile")]
 | |
| 	public class SyncFile
 | |
| 	{
 | |
| 		private CompareItems _Items=new CompareItems();
 | |
| 		[XmlElement("CompareItem")]
 | |
| 		public CompareItems Items
 | |
| 		{
 | |
| 			get { return _Items; }
 | |
| 			set { _Items = value; }
 | |
| 		}
 | |
| 	}
 | |
| 	public partial class CompareItems : List<CompareItem>
 | |
| 	{
 | |
| 	}
 | |
| 	public class CompareItem
 | |
| 	{
 | |
| 		private string _Source;
 | |
| 		[XmlAttribute("Source")]
 | |
| 		public string Source
 | |
| 		{
 | |
| 			get { return _Source; }
 | |
| 			set { _Source = value; }
 | |
| 		}
 | |
| 		private string _Destination;
 | |
| 		[XmlAttribute("Destination")]
 | |
| 		public string DestinationItem
 | |
| 		{
 | |
| 			get { return _Destination; }
 | |
| 			set { _Destination = value; }
 | |
| 		}
 | |
| 		public CompareItem()
 | |
| 		{
 | |
| 		}
 | |
| 		public CompareItem(string source, string destination)
 | |
| 		{
 | |
| 			_Source = source;
 | |
| 			_Destination = destination;
 | |
| 		}
 | |
| 		private FileInfo _SourceFile;
 | |
| 		[XmlIgnore]
 | |
| 		public FileInfo SourceFile
 | |
| 		{
 | |
| 			get 
 | |
| 			{
 | |
| 				if (_SourceFile == null)
 | |
| 					_SourceFile = new FileInfo(_Source);
 | |
| 				return _SourceFile; 
 | |
| 			}
 | |
| 			set { _SourceFile = value; }
 | |
| 		}
 | |
| 		private FileInfo _DestinationFile;
 | |
| 		[XmlIgnore]
 | |
| 		public FileInfo DestinationFile
 | |
| 		{
 | |
| 			get 
 | |
| 			{
 | |
| 				if (_DestinationFile == null)
 | |
| 					_DestinationFile = new FileInfo(_Destination);
 | |
| 				return _DestinationFile; 
 | |
| 			}
 | |
| 			set { _DestinationFile = value; }
 | |
| 		}
 | |
| 		public bool IsDifferent
 | |
| 		{
 | |
| 			get
 | |
| 			{
 | |
| 				string srcText = ReadFile(SourceFile);
 | |
| 				string dstText = ReadFile(DestinationFile);
 | |
| 				return srcText != dstText;
 | |
| 			}
 | |
| 		}
 | |
| 		private string ReadFile(FileInfo myFile)
 | |
| 		{
 | |
| 			string retval;
 | |
| 			using (StreamReader sr = myFile.OpenText())
 | |
| 			{
 | |
| 				retval = sr.ReadToEnd();
 | |
| 				sr.Close();
 | |
| 			}
 | |
| 			return retval;
 | |
| 		}
 | |
| 		public void CopySourceToDestination()
 | |
| 		{
 | |
| 			_DestinationFile.IsReadOnly = false;
 | |
| 			_SourceFile.CopyTo(_Destination,true);
 | |
| 		}
 | |
| 		public void CopyDestinationToSource()
 | |
| 		{
 | |
| 			_SourceFile.IsReadOnly = false;
 | |
| 			_DestinationFile.CopyTo(Source,true);
 | |
| 		}
 | |
| 	}
 | |
| }
 |