// метод выполняемый при закрытии файла private void Form5_FormClosing(object sender, FormClosingEventArgs e) { // проверяем есть ли ещё журнал, если есть то удаляем из него устройство if (Directory.Exists($"C:/Users/{Environment.UserName}/AppData/Roaming/Palon")) { if (File.Exists($"C:/Users/{Environment.UserName}/AppData/Roaming/Palon/Using.txt")) { // десериализуем журнал try { // ищем наш файл DataContractJsonSerializer json = new DataContractJsonSerializer(typeof(Together)); FileStream str = new FileStream($"C:/Users/{Environment.UserName}/AppData/Roaming/Palon/Using.txt", FileMode.Open); Together a = (Together)json.ReadObject(str); str.Close(); File.Delete($"C:/Users/{Environment.UserName}/AppData/Roaming/Palon/Using.txt"); // если всего один изменяемый файл в журнале то удаляем файл if (a.mas.Length == 1) { } else { // есть ещё изменемы файлы - удаляем данный из журнала и обновляем int count = 0; for (int i = 0; i < a.mas.Length; i++) { if (a.mas[i].path == normpath) { // сдвигаем все на один влево count++; for (int j = i; j < a.mas.Length; j++) { if (j != a.mas.Length - 1) { a.mas[j] = a.mas[j + 1]; } } } } // создаём новый файл Array.Resize(ref a.mas, a.mas.Length - count); File.Create($"C:/Users/{Environment.UserName}/AppData/Roaming/Palon/Using.txt").Close(); str = new FileStream($"C:/Users/{Environment.UserName}/AppData/Roaming/Palon/Using.txt", FileMode.Open); Together together = new Together(a.mas); json.WriteObject(str, together); str.Close(); } } // эисклбчение при десериализации catch (Exception ex) { MessageBox.Show("Source files were corrupted"); //this.Close(); } } } }
public EncryptBack5(string path, byte[] key, byte[] IV, ToCode cod, int num, bool b, bool directory, string adr, string pass) { this.directory = directory; // файл try { if (directory) { // проверка надо ли удалять ключ if (b == false) { File.Delete($"C:/Users/{Environment.UserName}/AppData/Roaming/Palon/Pakman{num}.txt"); //this.Close(); } else { this.IV = IV; this.key = key; path = Path.ChangeExtension(path, cod.Rassh); this.path = path; this.num = num; this.cod = cod; InitializeComponent(); } } // папка else { // проверка надо ли удалять ключ if (b == false) { File.Delete($"C:/Users/{Environment.UserName}/AppData/Roaming/Palon/PakmanD{num}.txt"); //this.Close(); } else { this.key = key; this.IV = IV; this.path = path.Remove(path.Length - 4); this.num = num; this.cod = cod; InitializeComponent(); } } // проверка if (Directory.Exists($"C:/Users/{Environment.UserName}/AppData/Roaming/Palon")) { // проверка существует ли журнал if (File.Exists($"C:/Users/{Environment.UserName}/AppData/Roaming/Palon/Using.txt")) { // добавляем наше устройство normpath = path; // сериализация данных о файле и о том как мы его должны закодировать DataContractJsonSerializer json = new DataContractJsonSerializer(typeof(Together)); FileStream str = null; try { str = new FileStream($"C:/Users/{Environment.UserName}/AppData/Roaming/Palon/Using.txt", FileMode.Open); Together a = (Together)json.ReadObject(str); str.Close(); File.Delete($"C:/Users/{Environment.UserName}/AppData/Roaming/Palon/Using.txt"); Array.Resize(ref a.mas, a.mas.Length + 1); a.mas[a.mas.Length - 1] = new Processonefile(adr, pass, normpath, directory); str = new FileStream($"C:/Users/{Environment.UserName}/AppData/Roaming/Palon/Using.txt", FileMode.Create); json.WriteObject(str, a); str.Close(); } catch (Exception ex) { MessageBox.Show("Two processes in one time"); Application.Exit(); } } else { // создаем журнал и добавляем туда первое устройство normpath = path; DataContractJsonSerializer json = new DataContractJsonSerializer(typeof(Together)); Processonefile type = new Processonefile(adr, pass, normpath, directory); // класс одного файла Processonefile[] typemas = new Processonefile[1] { type }; // класс всех изменяемых файлов из журнала Together a = new Together(typemas); FileStream str = new FileStream($"C:/Users/{Environment.UserName}/AppData/Roaming/Palon/Using.txt", FileMode.Create); json.WriteObject(str, a); str.Close(); } } else { MessageBox.Show("Sorry, something had happened"); this.Close(); } Encryptback.Text = $"Encrypt back \n {Path.ChangeExtension(path, cod.Rassh)}"; } catch (Exception ex) { MessageBox.Show("Key were deleted"); } }
public Startfrom1(string[] args) { // проверка есть ли журнал if (File.Exists($"C:/Users/{Environment.UserName}/AppData/Roaming/Palon/Using.txt")) { try { FileStream str = new FileStream($"C:/Users/{Environment.UserName}/AppData/Roaming/Palon/Using.txt", FileMode.Open); DataContractJsonSerializer json = new DataContractJsonSerializer(typeof(Together)); Together Tojournal = (Together)json.ReadObject(str); // массив запущенных процессов Process[] pr = Process.GetProcesses(); str.Close(); // проверка числа запущенных программ PALON int myprogramm = 0; foreach (var item in pr) { if (item.ProcessName == "ToCreate") { myprogramm++; } } // проверка числа запущенных программ PALON if (myprogramm <= Tojournal.mas.Length) { for (int i = 0; i < Tojournal.mas.Length; i++) { // проверка существует ли нужный нам файл if (File.Exists(Tojournal.mas[i].path)) { // кодируем файл Passwordandencrypt3 extra = new Passwordandencrypt3(Tojournal.mas[i].path, "", Tojournal.mas[i].adr, Tojournal.mas[i].direct); } } // удаляем File.Delete($"C:/Users/{Environment.UserName}/AppData/Roaming/Palon/Using.txt"); } } // исключение при десериализации catch (Exception ex) { MessageBox.Show("Source File was changed"); this.Close(); } } this.assosiatedfile = args; //args = new string[1];args[0] = @"\\Mac\Home\Desktop\ваваав.code4"; // args - возможный путь //( который появляется при открытии файла code3, и включается раскодирование) // если же это пустой массив, то открывается сама программа кодирования // запуск основной программы if (args.Length == 0) { // инициализация мнтерфейса InitializeComponent(); } // запуск программы разкодирования else { // поиск устройства и декодирование this.Hide(); // форма поиска устройства и декодирования CheckAndDecrypt Decode = new CheckAndDecrypt(args); Decode.ShowDialog(); //this.Close(); this.Shown += new EventHandler(MyForm_CloseOnStart); } }