Exemplo n.º 1
0
 public static void MirrorFolder(string from, string to)
 {
     if (FileMirroring.< > f__mg$cache1 == null)
     {
         FileMirroring.< > f__mg$cache1 = new Func <string, string, bool>(FileMirroring.CanSkipCopy);
     }
     FileMirroring.MirrorFolder(from, to, FileMirroring.< > f__mg$cache1);
 }
Exemplo n.º 2
0
 public static bool CanSkipCopy(string from, string to)
 {
     if (!File.Exists(to))
     {
         return(false);
     }
     return(FileMirroring.AreFilesIdentical(from, to));
 }
Exemplo n.º 3
0
        public static void MirrorFolder(string from, string to, Func <string, string, bool> comparer)
        {
            from = Path.GetFullPath(from);
            to   = Path.GetFullPath(to);
            if (!Directory.Exists(from))
            {
                if (Directory.Exists(to))
                {
                    Directory.Delete(to, true);
                }
            }
            else
            {
                if (!Directory.Exists(to))
                {
                    Directory.CreateDirectory(to);
                }
                IEnumerable <string> first = from s in Directory.GetFileSystemEntries(to)
                                             select FileMirroring.StripPrefix(s, to);

                IEnumerable <string> enumerable = from s in Directory.GetFileSystemEntries(@from)
                                                  select FileMirroring.StripPrefix(s, @from);

                IEnumerable <string> enumerable2 = first.Except(enumerable);
                foreach (string current in enumerable2)
                {
                    FileMirroring.DeleteFileOrDirectory(Path.Combine(to, current));
                }
                foreach (string current2 in enumerable)
                {
                    string text  = Path.Combine(from, current2);
                    string text2 = Path.Combine(to, current2);
                    FileMirroring.FileEntryType fileEntryType  = FileMirroring.FileEntryTypeFor(text);
                    FileMirroring.FileEntryType fileEntryType2 = FileMirroring.FileEntryTypeFor(text2);
                    if (fileEntryType == FileMirroring.FileEntryType.File && fileEntryType2 == FileMirroring.FileEntryType.Directory)
                    {
                        FileMirroring.DeleteFileOrDirectory(text2);
                    }
                    if (fileEntryType == FileMirroring.FileEntryType.Directory)
                    {
                        if (fileEntryType2 == FileMirroring.FileEntryType.File)
                        {
                            FileMirroring.DeleteFileOrDirectory(text2);
                        }
                        if (fileEntryType2 != FileMirroring.FileEntryType.Directory)
                        {
                            Directory.CreateDirectory(text2);
                        }
                        FileMirroring.MirrorFolder(text, text2);
                    }
                    if (fileEntryType == FileMirroring.FileEntryType.File)
                    {
                        FileMirroring.MirrorFile(text, text2, comparer);
                    }
                }
            }
        }
Exemplo n.º 4
0
        public static bool CanSkipCopy(string from, string to)
        {
            bool flag  = !File.Exists(from);
            bool flag2 = !File.Exists(to);
            bool result;

            if (flag || flag2)
            {
                result = (flag && flag2);
            }
            else
            {
                result = FileMirroring.AreFilesIdentical(from, to);
            }
            return(result);
        }
Exemplo n.º 5
0
 public static void MirrorFile(string from, string to, Func <string, string, bool> comparer)
 {
     if (!comparer(from, to))
     {
         if (!File.Exists(from))
         {
             FileMirroring.DeleteFileOrDirectory(to);
         }
         else
         {
             string directoryName = Path.GetDirectoryName(to);
             if (!Directory.Exists(directoryName))
             {
                 Directory.CreateDirectory(directoryName);
             }
             File.Copy(from, to, true);
         }
     }
 }
Exemplo n.º 6
0
 public static void MirrorFolder(string from, string to, Func <string, string, bool> comparer)
 {
     // ISSUE: object of a compiler-generated type is created
     // ISSUE: variable of a compiler-generated type
     FileMirroring.\u003CMirrorFolder\u003Ec__AnonStorey72 folderCAnonStorey72 = new FileMirroring.\u003CMirrorFolder\u003Ec__AnonStorey72();
     // ISSUE: reference to a compiler-generated field
     folderCAnonStorey72.to = to;
     // ISSUE: reference to a compiler-generated field
     folderCAnonStorey72.from = from;
     // ISSUE: reference to a compiler-generated field
     // ISSUE: reference to a compiler-generated field
     folderCAnonStorey72.from = Path.GetFullPath(folderCAnonStorey72.from);
     // ISSUE: reference to a compiler-generated field
     // ISSUE: reference to a compiler-generated field
     folderCAnonStorey72.to = Path.GetFullPath(folderCAnonStorey72.to);
     // ISSUE: reference to a compiler-generated field
     if (!Directory.Exists(folderCAnonStorey72.from))
     {
         // ISSUE: reference to a compiler-generated field
         if (!Directory.Exists(folderCAnonStorey72.to))
         {
             return;
         }
         // ISSUE: reference to a compiler-generated field
         Directory.Delete(folderCAnonStorey72.to, true);
     }
     else
     {
         // ISSUE: reference to a compiler-generated field
         if (!Directory.Exists(folderCAnonStorey72.to))
         {
             // ISSUE: reference to a compiler-generated field
             Directory.CreateDirectory(folderCAnonStorey72.to);
         }
         // ISSUE: reference to a compiler-generated field
         // ISSUE: reference to a compiler-generated method
         IEnumerable <string> first = ((IEnumerable <string>)Directory.GetFileSystemEntries(folderCAnonStorey72.to)).Select <string, string>(new Func <string, string>(folderCAnonStorey72.\u003C\u003Em__FA));
         // ISSUE: reference to a compiler-generated field
         // ISSUE: reference to a compiler-generated method
         IEnumerable <string> second = ((IEnumerable <string>)Directory.GetFileSystemEntries(folderCAnonStorey72.from)).Select <string, string>(new Func <string, string>(folderCAnonStorey72.\u003C\u003Em__FB));
         foreach (string path2 in first.Except <string>(second))
         {
             // ISSUE: reference to a compiler-generated field
             FileMirroring.DeleteFileOrDirectory(Path.Combine(folderCAnonStorey72.to, path2));
         }
         foreach (string path2 in second)
         {
             // ISSUE: reference to a compiler-generated field
             string str1 = Path.Combine(folderCAnonStorey72.from, path2);
             // ISSUE: reference to a compiler-generated field
             string str2 = Path.Combine(folderCAnonStorey72.to, path2);
             FileMirroring.FileEntryType fileEntryType1 = FileMirroring.FileEntryTypeFor(str1);
             FileMirroring.FileEntryType fileEntryType2 = FileMirroring.FileEntryTypeFor(str2);
             if (fileEntryType1 == FileMirroring.FileEntryType.File && fileEntryType2 == FileMirroring.FileEntryType.Directory)
             {
                 FileMirroring.DeleteFileOrDirectory(str2);
             }
             if (fileEntryType1 == FileMirroring.FileEntryType.Directory)
             {
                 if (fileEntryType2 == FileMirroring.FileEntryType.File)
                 {
                     FileMirroring.DeleteFileOrDirectory(str2);
                 }
                 if (fileEntryType2 != FileMirroring.FileEntryType.Directory)
                 {
                     Directory.CreateDirectory(str2);
                 }
                 FileMirroring.MirrorFolder(str1, str2);
             }
             if (fileEntryType1 == FileMirroring.FileEntryType.File)
             {
                 FileMirroring.MirrorFile(str1, str2, comparer);
             }
         }
     }
 }
Exemplo n.º 7
0
 public static void MirrorFolder(string from, string to)
 {
     FileMirroring.MirrorFolder(from, to, new Func <string, string, bool>(FileMirroring.CanSkipCopy));
 }