예제 #1
0
        private void CheckDirs(PackDir dirRemoto1, PackDir dirlocal, string dirname = "")
        {
            if (dirname != string.Empty)
            {
                dirname += @"\";
            }

            if (dirlocal == null)
            {
                this.CheckFiles(dirRemoto1.PackFiles, null, dirname + dirRemoto1.Name);
                foreach (var dirRemoto2 in dirRemoto1.PackDirs)
                {
                    this.CheckDirs(dirRemoto2, null, dirname + dirRemoto1.Name);
                }
            }
            else
            {
                this.CheckFiles(dirRemoto1.PackFiles, dirlocal.PackFiles, dirname);

                foreach (var dirRemoto in dirRemoto1.PackDirs)
                {
                    var dirLocales = dirlocal.PackDirs.Where(d => d.Name == dirRemoto.Name);

                    if (dirLocales.Any())
                    {
                        this.CheckDirs(dirRemoto, dirLocales.First(), dirname + dirRemoto.Name);
                    }
                    else
                    {
                        this.CheckDirs(dirRemoto, null, dirname + dirRemoto.Name);
                    }
                }
            }
        }
예제 #2
0
        public void Start()
        {
            if (local.MainVer == remote.MainVer)
            {
                // "First Install"
                this.newVersion.Text = Strings["FirstInstall"];
            }
            else
            {
                this.newVersion.Text = local.MainVer.ToString() + " → " + remote.MainVer.ToString();
            }

            Increment       = 100D / remote.Size;
            BytesDownloaded = 0;

            this.CheckFiles(remote.PackFiles, local.PackFiles);

            foreach (var dirRemoto in remote.PackDirs)
            {
                var     dirLocales = local.PackDirs.Where(d => d.Name == dirRemoto.Name);
                PackDir dirLocal   = dirLocales.Any() ? dirLocales.First() : null;
                this.CheckDirs(dirRemoto, dirLocal, dirRemoto.Name);
            }
        }