コード例 #1
0
 // метод выполняемый при закрытии файла
 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();
             }
         }
     }
 }
コード例 #2
0
 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");
     }
 }
コード例 #3
0
 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);
     }
 }