コード例 #1
0
ファイル: SyncManager.cs プロジェクト: shawn-dsz/SyncDir
        private static void UpdateDirectory(SyncDirectory syncDirA, SyncDirectory syncDirB)
        {
            var fm = new FileInfoHelper();
            syncDirA.SyncFileData.ToList().ForEach(syncFileData => { Compare(syncFileData, syncDirA, syncDirB); });

            fm.WriteToSyncFile(syncDirB);
        }
コード例 #2
0
ファイル: SyncManager.cs プロジェクト: shawn-dsz/SyncDir
 private static void Compare(SyncFileData syncFileData, SyncDirectory syncDirA, SyncDirectory syncDirB)
 {
     var fileInfoHelper = new FileInfoHelper();
     var syncFile = syncDirB.SyncFileData.SingleOrDefault(f => f.Name == syncFileData.Name);
     if (syncFile == null)
     {
         fileInfoHelper.Copy(syncFileData, syncDirA, syncDirB);
     }
     else
     {
         if (syncFileData.Logs.Last().Hash != syncFile.Logs.Last().Hash)
         {
             if (syncFileData.Logs.Last().Date > syncFile.Logs.Last().Date)
             {
                 //fm.Copy(syncDirA, syncDirB, syncFileData);
             }
         }
         else
         {
             if (syncFileData.Logs.Last().Date > syncFile.Logs.Last().Date)
             {
                 // fm.Copy(syncDirB, syncDirA, syncFileData);
             }
         }
     }
 }
コード例 #3
0
ファイル: Program.cs プロジェクト: shawn-dsz/SyncDir
        private static void Start(string[] args)
        {
            var fileHelper = new FileInfoHelper();

            var dirs = fileHelper.GetDirectoryInfo(args).ToList();

            var syncDirA = new SyncDirectory(dirs.ElementAt(0));
            var syncDirB = new SyncDirectory(dirs.ElementAt(1));

            var syncMan = new SyncManager();
            syncMan.Sync(syncDirA, syncDirB);
        }
コード例 #4
0
ファイル: FileInfoHelper.cs プロジェクト: shawn-dsz/SyncDir
        internal void Copy(SyncFileData fileToCopy, SyncDirectory fromDirectory, SyncDirectory toDirectory)
        {
            var src = Format(fromDirectory, fileToCopy.Name);
            var dest = Format(toDirectory, fileToCopy.Name);

            File.Copy(src, dest, true);
            var syncFileData
                = SyncFileManager.CreateSyncFileData(dest);

            var foo = toDirectory.SyncFileData.ToList();
            foo.Add(syncFileData);
            toDirectory.SyncFileData = foo;

            WriteToSyncFile(toDirectory);
        }
コード例 #5
0
ファイル: FileInfoHelper.cs プロジェクト: shawn-dsz/SyncDir
 private static string Format(SyncDirectory fullName, string fileName)
 {
     return string.Format(@"{0}\{1}", fullName.FileInfo.FullName, fileName);
 }
コード例 #6
0
ファイル: FileInfoHelper.cs プロジェクト: shawn-dsz/SyncDir
        internal void WriteToSyncFile(SyncDirectory syncDirB)
        {
            var syncPath = string.Format(@"{0}\{1}", syncDirB.FileInfo.FullName, SynFile);

            var json = JsonConvert.SerializeObject(syncDirB.SyncFileData);

            File.WriteAllText(syncPath, json);
        }
コード例 #7
0
ファイル: SyncManager.cs プロジェクト: shawn-dsz/SyncDir
        internal void Sync(SyncDirectory syncDirA, SyncDirectory syncDirB)
        {
            UpdateDirectory(syncDirA, syncDirB);

            //DoStuff(syncDirB, syncDirA);
        }