コード例 #1
0
ファイル: WMFelulIr.cs プロジェクト: erik5078/Fajlkezelo
        /// <summary>
        /// felülír property állítása.
        /// </summary>
        private void FelulirBeallit()
        {
            bool bezar = false;

            if (Felulir == "true")
            {
                felulir = Models.Felulir.Felulir;
                bezar   = true;
            }
            else if (MindetFelulir == "true")
            {
                felulir = Models.Felulir.MindetFelulir;
                bezar   = true;
            }
            else if (Kihagy == "true")
            {
                felulir = Models.Felulir.Kihagy;
                bezar   = true;
            }
            else if (MindetKihagy == "true")
            {
                felulir = Models.Felulir.MindetKihagy;
                bezar   = true;
            }
            else if (Megse == "true")
            {
                felulir = Models.Felulir.Megse;
                bezar   = true;
            }
            else
            {
                felulir = Models.Felulir.Alaphelyzet;
            }

            if (bezar)
            {
                View.FelulirWindow.felulirWindow.Close();
            }
        }
コード例 #2
0
ファイル: Masolas.cs プロジェクト: erik5078/Fajlkezelo
        /// <summary>
        /// Másolás végrehajtása.
        /// </summary>
        /// <param name="regiEleresiUt">Forrás</param>
        /// <param name="ujEleresiUt">Cél</param>
        /// <param name="bw">BackgroundWorker példány, ide küldi a státuszinformációkat.</param>
        public void Masolas(List <string> regiEleresiUt, string ujEleresiUt, BackgroundWorker bw)
        {
            this.ujEleresiUt = ujEleresiUt;
            tartDb           = 0;
            VM.FajlAdatMegjelenito(fileDb, 0, "", "");
            Felulir felulirStatusz = Felulir.Alaphelyzet;

            //A fájlok és mappák megkeresése, összméret kiszámolása
            for (int i = 0; i < regiEleresiUt.Count; i++)
            {
                if (Directory.Exists(regiEleresiUt[i]))
                {
                    string[] temp = regiEleresiUt[i].Split('/');

                    try
                    {
                        Directory.CreateDirectory(@ujEleresiUt + temp[temp.Length - 2]);
                    }
                    catch (Exception e)
                    {
                    }

                    string[] temp2   = regiEleresiUt[i].Split('/');
                    string   foMappa = "";

                    for (int j = 0; j < temp2.Length - 2; j++)
                    {
                        foMappa = foMappa + temp2[j] + "/";
                    }

                    MappaBejar(regiEleresiUt[i], foMappa);
                }
                else
                {
                    fajlok.Add(regiEleresiUt[i]);

                    string[] temp = regiEleresiUt[i].Split('/');
                    fajlNevek.Add(temp[temp.Length - 1]);

                    FileInfo f = new FileInfo(@regiEleresiUt[i]);
                    meret.Add(f.Length);
                    osszMeret += meret[meret.Count - 1];
                    fileDb++;
                }
            }

            //Mappák létrehozása
            for (int i = 0; i < mappak.Count; i++)
            {
                try
                {
                    Directory.CreateDirectory(@mappak[i]);
                }
                catch (Exception e)
                {
                }
            }

            //Fájlok másolása
            //Összes fájl mérete kilobyte-ban
            osszMeret = 0;

            for (int i = 0; i < meret.Count; i++)
            {
                osszMeret += meret[i];
            }

            long osszMaradekKiloBytes = osszMeret % 1024;
            long osszKiloBytes        = osszMeret - osszMaradekKiloBytes;

            osszKiloBytes = osszKiloBytes / 1024;
            VM.FajlAdatMegjelenito(fileDb, 0, "", "");

            for (int i = 0; i < fajlok.Count; i++)
            {
                VM.FajlAdatMegjelenito(fileDb, tartDb, @fajlok[i], @ujEleresiUt + @fajlNevek[i]);
                bool letezik = false;

                if (felulirStatusz == Felulir.Kihagy || felulirStatusz == Felulir.Felulir)
                {
                    felulirStatusz = Felulir.Alaphelyzet;
                }

                if (File.Exists(@ujEleresiUt + @fajlNevek[i]))
                {
                    letezik = true;

                    if (felulirStatusz != Felulir.MindetFelulir && felulirStatusz != Felulir.MindetKihagy)
                    {
                        Application.Current.Dispatcher.Invoke((Action)(() =>
                        {
                            View.FelulirWindow felulirWindow = new View.FelulirWindow();
                            ViewModels.WMFelulir.Instance.SetFelulirLabel(@ujEleresiUt + @fajlNevek[i]);
                            felulirWindow.ShowDialog();
                            felulirStatusz = ViewModels.WMFelulir.Instance.FelulirProperty;
                            ViewModels.WMFelulir.Instance.ReInstance();
                        }));
                    }
                }

                if (felulirStatusz == Felulir.Megse)
                {
                    return;
                }

                BinaryReader reader = new BinaryReader(new FileStream(@fajlok[i], FileMode.Open), Encoding.ASCII);
                BinaryWriter writer;

                //ÖSSZES BYTE
                int nBytes       = (int)reader.BaseStream.Length;
                int maradekBytes = nBytes % 1048576;
                int megaBytes    = nBytes - maradekBytes;
                megaBytes = megaBytes / 1048576;
                int maradekBytesKiloByte = nBytes % 1024;
                int kiloBytes            = nBytes - maradekBytesKiloByte;
                kiloBytes = kiloBytes / 1024;

                int tart      = 0;
                int elozotart = 0;

                if (felulirStatusz == Felulir.Alaphelyzet || felulirStatusz == Felulir.Felulir || felulirStatusz == Felulir.MindetFelulir)
                {
                    writer = new BinaryWriter(new FileStream(@ujEleresiUt + @fajlNevek[i], FileMode.Create));
                    writer.Close();
                }

                writer = new BinaryWriter(new FileStream(@ujEleresiUt + @fajlNevek[i], FileMode.Append));

                if ((felulirStatusz == Felulir.Kihagy || felulirStatusz == Felulir.MindetKihagy) && letezik)
                {
                    tartMeret += kiloBytes;
                    double szazalekOsszesVege = 0;

                    if (osszKiloBytes != 0)
                    {
                        szazalekOsszesVege = Convert.ToDouble(tartMeret) / Convert.ToDouble(osszKiloBytes);
                    }

                    szazalekOsszesVege = Math.Round(szazalekOsszesVege);
                    ViewModels.VMMasolas.Instance.OsszesProgressbar(szazalekOsszesVege);
                    bw.ReportProgress(100);
                    tartDb++;
                    VM.FajlAdatMegjelenito(fileDb, tartDb, @fajlok[i], @ujEleresiUt + @fajlNevek[i]);

                    reader.Close();
                    writer.Close();
                }
                else
                {
                    for (int j = 0; j < megaBytes; j++)
                    {
                        writer.Write(reader.ReadBytes(1048576));

                        double szazalek = Convert.ToDouble(tart) / Convert.ToDouble(kiloBytes);
                        szazalek = szazalek * 100;
                        szazalek = Math.Round(szazalek);

                        double szazalekOsszes = Convert.ToDouble(tartMeret) / Convert.ToDouble(osszKiloBytes);
                        szazalekOsszes = szazalekOsszes * 100;
                        szazalekOsszes = Math.Round(szazalekOsszes);

                        if (bw.CancellationPending)
                        {
                            writer.Close();
                            reader.Close();
                            return;
                        }

                        if (elozotart != szazalek)
                        {
                            int temp = (int)szazalek;

                            ViewModels.VMMasolas.Instance.OsszesProgressbar(szazalekOsszes);

                            bw.ReportProgress(temp);
                            elozotart = temp;
                        }

                        tart      = tart + 1024;
                        tartMeret = tartMeret + 1024;
                    }

                    for (int j = 0; j < maradekBytes; j++)
                    {
                        writer.Write(reader.ReadByte());

                        if (maradekBytes % 1024 == 0)
                        {
                            tart++;
                        }
                    }

                    if (bw.CancellationPending)
                    {
                        writer.Close();
                        reader.Close();
                        return;
                    }


                    double szazalekOsszesVege = 0;

                    if (osszKiloBytes != 0)
                    {
                        szazalekOsszesVege = Convert.ToDouble(tartMeret) / Convert.ToDouble(osszKiloBytes);
                    }

                    szazalekOsszesVege = szazalekOsszesVege * 100;
                    szazalekOsszesVege = Math.Round(szazalekOsszesVege);

                    ViewModels.VMMasolas.Instance.OsszesProgressbar(szazalekOsszesVege);
                    bw.ReportProgress(100);
                    tartDb++;
                    VM.FajlAdatMegjelenito(fileDb, tartDb, @fajlok[i], @ujEleresiUt + @fajlNevek[i]);

                    writer.Close();
                    reader.Close();
                }

                if (felulirStatusz == Felulir.Kihagy || felulirStatusz == Felulir.Felulir)
                {
                    felulirStatusz = Felulir.Alaphelyzet;
                }
            }

            tartMeret            = 0;
            osszMeret            = 0;
            osszKiloBytes        = 0;
            osszMaradekKiloBytes = 0;
        }