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);
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 |