//Выбор папки с исследуемыми текстами private void button3_Click(object sender, EventArgs e) { var folderBrowserDialog1 = new FolderBrowserDialog(); folderBrowserDialog1.Description = "Выбор папки с текстовыми файлами"; DialogResult result = folderBrowserDialog1.ShowDialog(); var dir = folderBrowserDialog1.SelectedPath; if (result == DialogResult.OK) { var number_of_loaded_files = Int32.Parse(label7.Text); List <String> ListOfFiles = new List <string>(); number_of_loaded_files += FileWorking.GetListOfFiles(ListOfFiles, dir); foreach (var i in ListOfFiles) { var temp = i.Split('\\'); FileWorking.ListOfFilesTexts.Add(temp[temp.Length - 1]); } label7.Text = number_of_loaded_files.ToString(); label8.Text = declension_file(number_of_loaded_files); foreach (var file in ListOfFiles) { FileWorking.AddFile(file, false); } } }
//Выбор файла с исследуемыми текстами //Выбор файла с текстами-образцами private void button1_Click(object sender, EventArgs e) { OpenFileDialog openFileDialog1 = new OpenFileDialog(); openFileDialog1.Title = "Выбор текстового файла"; openFileDialog1.Multiselect = false; //Запрет множественного выбора openFileDialog1.InitialDirectory = "c:\\"; openFileDialog1.Filter = "Текстовые файлы |*.TXT"; openFileDialog1.RestoreDirectory = true; if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK) { var number_of_loaded_files = Int32.Parse(label3.Text) + 1; label3.Text = number_of_loaded_files.ToString(); label4.Text = declension_file(number_of_loaded_files); FileWorking.AddFile(openFileDialog1.FileName, true); var temp = openFileDialog1.FileName.Split('\\'); FileWorking.ListOfFilesSamples.Add(temp[temp.Length - 1]); } }
/// <summary> /// Добавляет хеш-файл в анализируемый список /// </summary> /// <param name="filename">Путь до анализируемого файла</param> /// <param name="f">true - добавление в образцы, false - добавление в исследуемые тексты</param> public static void AddFile(string filename, bool f) { //Если выбран служебный файл с хешами if (FileWorking.IsProcessedFile(filename)) { MessageBox.Show("Выбран служебный файл!"); return; } //Если выбран служебный файл с хешами //Проверка, не устарел ли файл с хешами if (FileWorking.IsProcessed(filename)) { if (File.GetLastWriteTime(filename) > File.GetLastWriteTime(filename + ".processed")) { File.Delete(filename + ".processed"); } } //Проверка, не устарел ли файл с хешами //Если требуется хеширование if (!FileWorking.IsProcessed(filename)) { //Хеширование по словам var text = FileWorking.ReadFile(filename).ToString().Replace(".", ""); //Удаление точек List <String> HashList = new List <String>(); var words = text.Split(new char[] { ' ', '\n', '\t' }); foreach (var word in words) { //if (word!="") HashList.Add(WordHash(word).ToString()); if (word != "") { HashList.Add(GetCrypt(word)); } } //Хеширование по словам StringBuilder hash_line = new StringBuilder(); var i = 0; foreach (var hash in HashList) { if (i != HashList.Count - 1) { hash_line.Append(hash.ToString() + ","); } else { hash_line.Append(hash.ToString()); } i++; } File.WriteAllText(filename + ".processed", hash_line.ToString()); if (f == true) { Samples.Add(hash_line.ToString()); } else { Texts.Add(hash_line.ToString()); } } //Если требуется хеширование //Если хеширование не требуется else { if (f == true) { Samples.Add(File.ReadAllText(filename + ".processed")); } else { Texts.Add(File.ReadAllText(filename + ".processed")); } } //Если хеширование не требуется }