예제 #1
0
        public static string BackupFile(string file)
        {
            bool   flag       = false;
            string backupFile = VmcStudioUtil.GetBackupFile(file);

            if (!File.Exists(backupFile))
            {
                Trace.TraceInformation("No backup of {0} exists, creating {1}.", (object)file, (object)backupFile);
                flag = true;
            }
            else
            {
                string fileVersion1 = VmcStudioUtil.GetFileVersion(backupFile);
                string fileVersion2 = VmcStudioUtil.GetFileVersion(file);
                if (fileVersion1 != fileVersion2)
                {
                    Trace.TraceInformation("Version of {0} has changed ({1} to {2}), refreshing backup file {3}.", (object)file, (object)fileVersion1, (object)fileVersion2, (object)backupFile);
                    VmcStudioUtil.TakeOwnership(backupFile);
                    flag = true;
                }
            }
            if (flag)
            {
                Directory.CreateDirectory(Path.GetDirectoryName(backupFile));
                File.Copy(file, backupFile, true);
            }
            return(backupFile);
        }
예제 #2
0
 public static bool RestoreModifiedFiles()
 {
     if (!VmcStudioUtil.EnsureMediaCenterClosed(true))
     {
         return(false);
     }
     VmcStudioUtil.Application.CommonResources.CloseResources();
     try
     {
         foreach (string str in Directory.GetFiles(MediaCenterUtil.MediaCenterPath))
         {
             string backupFile = VmcStudioUtil.GetBackupFile(str);
             if (File.Exists(backupFile))
             {
                 File.Copy(backupFile, str, true);
             }
         }
     }
     finally
     {
         VmcStudioUtil.Application.CommonResources.ResetResources();
     }
     return(true);
 }