Пример #1
0
 private void button1_Click(object sender, EventArgs e)
 {
     if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
     {
         FileUpd f = SLFiles.Upd.AddFile(openFileDialog1.FileName, openFileDialog1.SafeFileName);
         MessageBox.Show("Added file " + f.Name + " Size: " + f.Data.Length.ToString());
     }
 }
Пример #2
0
        /// <summary>
        /// Распаковка файла из пакета обновления
        /// </summary>
        /// <param name="name">Имя файла</param>
        public void UnPack(string name)
        {
            FileUpd unPFile = FindFile(name);

            if (unPFile.Name != "")
            {
                FileStream file = File.Open(name, FileMode.Create, FileAccess.ReadWrite);
                file.Write(unPFile.Data, 0, unPFile.Data.Length);
                file.Close();
            }
        }
Пример #3
0
        /// <summary>
        /// Удаление файла из пакета обновления
        /// </summary>
        /// <param name="namefile">Имя файла</param>
        /// <returns></returns>
        public bool RemoveFile(string namefile)
        {
            bool    result = false;
            FileUpd rfile  = FindFile(namefile);

            if (rfile.Name != "")
            {
                result = Files.Remove(rfile);
            }
            OnRewrite();
            return(result);
        }
Пример #4
0
        /// <summary>
        /// Поиск файла в пакете
        /// </summary>
        /// <param name="fname">Имя файла</param>
        /// <returns></returns>
        public FileUpd FindFile(string fname)
        {
            FileUpd result = new FileUpd();

            foreach (FileUpd f in Files)
            {
                if (f.Name == fname)
                {
                    result = f;
                    break;
                }
            }
            return(result);
        }
Пример #5
0
        /// <summary>
        /// Добавление файла в пакет обновления
        /// </summary>
        /// <param name="file">Файл</param>
        /// <param name="namefile">Имя файла в пакете</param>
        /// <returns></returns>
        public FileUpd AddFile(string file, string namefile)
        {
            FileUpd result   = new FileUpd();
            FileUpd dublFile = FindFile(namefile);

            if (dublFile.Name == "")
            {
                result = Pack(file, namefile);

                if (result.Name != "")
                {
                    Files.Add(result);
                }
            }
            OnRewrite();
            return(result);
        }
Пример #6
0
        /// <summary>
        /// Упаковка файла в оболочку типа FileUpd
        /// </summary>
        /// <param name="file">Файл</param>
        /// <param name="namefile">Имя файла в пакете</param>
        /// <returns></returns>
        private FileUpd Pack(string file, string namefile)
        {
            FileUpd result = new FileUpd();

            try
            {
                FileStream fs = new FileStream(file, FileMode.Open, FileAccess.Read);
                byte[]     b  = new byte[fs.Length];
                fs.Read(b, 0, (int)fs.Length);
                fs.Close();
                result = new FileUpd(namefile, b);
            }
            catch (Exception e)
            {
                new Log("Error packs " + e.Message);
            }
            return(result);
        }
Пример #7
0
        /// <summary>
        /// Перезапись файла в пакете обновления
        /// </summary>
        /// <param name="oldname">Старое имя файла</param>
        /// <param name="file">Новый файл обновления</param>
        /// <param name="namefile">Новое имя файла</param>
        /// <returns></returns>
        public bool ReWriteFile(string oldname, string file, string namefile)
        {
            bool    result  = false;
            FileUpd oldFile = FindFile(oldname);

            if (oldFile.Name != "")
            {
                FileUpd newfile = Pack(file, namefile);
                if (newfile.Name != "")
                {
                    int  countold = Files.IndexOf(oldFile);
                    bool b        = Files.Remove(oldFile);
                    Files.Insert(countold, newfile);
                    if (b)
                    {
                        result = true;
                    }
                }
            }
            OnRewrite();
            return(result);
        }