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()); } }
/// <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(); } }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }