Пример #1
0
        private void WorkerCheck_DoWork(object sender, DoWorkEventArgs e)
        {
            Thread.Sleep(3000);
            foreach (string file in Launcher.Name)
            {
                Thread.Sleep(100);
                if (!File.Exists(file))
                {
                    e.Cancel = true;
                    return;
                }
            }
            //if (!library.Check())
            //{
            //    e.Cancel = true;
            //    return;
            //}

            Thread.Sleep(3000);
            if (dataFile.CheckUnknown(Launcher.Name, library.Name))
            {
                e.Cancel = true;
                return;
            }

            Thread.Sleep(3000);
            if (dataFile.CheckMissed(Launcher.Name))
            {
                e.Cancel = true;
                return;
            }
        }
Пример #2
0
        private void workerFile_DoWork(object sender, DoWorkEventArgs e)
        {
            this.number        = 0;
            this.fileMissed    = 0;
            this.fileUnknown   = 0;
            this.fileIncorrect = 0;
            files    = new List <CheckFile>();
            e.Result = ErrorResult.None;
            // Get the BackgroundWorker that raised this event.
            BackgroundWorker worker = sender as BackgroundWorker;

            Library  lib = new Library();
            DataFile df  = new DataFile();

            //provjera nedostajucih fajlova
            if (df.CheckMissed(Launcher.Name))
            {
                errorResult = true;
                //e.Result = ErrorResult.Missed;
                df.ReadMissed(Launcher.Name);
                foreach (int id in df.MissedFiles)
                {
                    fileMissed++;
                    files.Add(new CheckFile(++number, Launcher.Name[id], Launcher.Size[id], "Nedostaje"));
                }

                //return;
            }
            //provjera da li je pritisnut prekid
            if (worker.CancellationPending)
            {
                e.Cancel = true;
                return;
            }
            //provjera nepoznatih fajlova
            if (df.CheckUnknown(Launcher.Name, lib.Name))
            {
                errorResult = true;
                //e.Result = ErrorResult.Unknown;
                df.ReadUnknown(Launcher.Name, lib.Name);
                foreach (string file in df.UnknownFiles)
                {
                    fileUnknown++;
                    long length = new System.IO.FileInfo(file).Length;
                    files.Add(new CheckFile(++number, file, length, "Nepoznat"));
                }
                //return;
            }
            //provjera da li je pritisnut prekid
            if (worker.CancellationPending)
            {
                e.Cancel = true;
                return;
            }

            //provjera hash fajlova koji su oznaceni za provjeru (valid)
            for (int i = 0; i < Launcher.Name.Length; i++)
            {
                //provjera da li je pritisnuto za prekid
                if (worker.CancellationPending)
                {
                    e.Cancel = true;
                    return;
                }

                workerFile.ReportProgress(i);
#if DEBUG
                //Thread.Sleep(250);
#endif

                if (Launcher.Valid[i])
                {
                    if (HashFile.GetMD5(Launcher.Name[i]) != Launcher.Hash[i].ToUpper())
                    {
                        fileIncorrect++;
                        errorResult = true;
                        files.Add(new CheckFile(++number, Launcher.Name[i], Launcher.Size[i], "Neispravan"));
                        //e.Result = ErrorResult.Validated;
                        //return;
                    }
                }
            }
        }
Пример #3
0
        private void WorkerFile_DoWork(object sender, DoWorkEventArgs e)
        {
            this.number        = 0;
            this.fileMissed    = 0;
            this.fileUnknown   = 0;
            this.fileIncorrect = 0;
            Library  lib = new Library();
            DataFile df  = new DataFile();

            this.errorFiles = new List <ErrorFile>();
            this.fileStream = new List <FileStream>();
            BackgroundWorker worker = sender as BackgroundWorker;

            //provjera nepoznatih fajlova
            if (df.CheckUnknown(Launcher.Name, lib.Name))
            {
                df.ReadUnknown(Launcher.Name, lib.Name);
                foreach (string file in df.UnknownFiles)
                {
                    //ako fajl u medjuvremenu nestane
                    if (!File.Exists(file))
                    {
                        continue;
                    }
                    this.fileUnknown++; //brojac nepoznatih fajlova
                    long length = new System.IO.FileInfo(file).Length;
                    this.errorFiles.Add(new ErrorFile(++number, file, length, "Nepoznat"));
                }
            }
            //provjera zahtjeva za izlaz
            if (worker.CancellationPending)
            {
                e.Cancel = true;
                return;
            }

            //provjera nedostajucih fajlova
            if (df.CheckMissed(Launcher.Name))
            {
                df.ReadMissed(Launcher.Name);
                foreach (int id in df.MissedFiles)
                {
                    this.id.Add(id);   //fajl koji nedotaje takodje se dodaje na listu za skidanje (download);
                    this.fileMissed++; //brojac nedostajucih fajlova
                    this.errorFiles.Add(new ErrorFile(++number, Launcher.Name[id], Launcher.Size[id], "Nedostaje"));
                }
            }
            //provjera zahtjeva za izlaz
            if (worker.CancellationPending)
            {
                e.Cancel = true;
                return;
            }

            //provjera za sve fajlove;
            for (int i = 0; i < Launcher.Name.Length; i++)
            {
                workerFile.ReportProgress(i);
                //provjera zahtjeva za izlaz
                if (worker.CancellationPending)
                {
                    e.Cancel = true;
                    return;
                }

                if (File.Exists(Launcher.Name[i]) && Launcher.Valid[i])
                {
                    if (HashFile.GetMD5(Launcher.Name[i]) != Launcher.Hash[i].ToUpper())
                    {
                        this.id.Add(i);
                        this.fileIncorrect++;
                        this.errorFiles.Add(new ErrorFile(++number, Launcher.Name[i], Launcher.Size[i], "Neispravan"));
                    }

                    /*this.fileStream.Clear();
                     * for (int j = 0; j <= i; j++)
                     * {
                     *  if (this.id.Count > 0)
                     *  {
                     *      bool skip = false;
                     *      foreach (int index in this.id)
                     *      {
                     *          if (j == index)
                     *          {
                     *              skip = true;
                     *              break;
                     *          }
                     *      }
                     *      if (skip) continue;
                     *  }
                     *
                     *  this.fileStream.Add(new FileStream(Launcher.Name[j], FileMode.Open, FileAccess.Read, FileShare.Read));
                     * }*/
                }
            }
        }