This commit is contained in:
Dvurechensky 2025-05-12 06:55:09 +03:00
parent e5e5e5c9a3
commit 2edf663d5b
48 changed files with 450 additions and 81 deletions

3
.gitignore vendored

@ -1,6 +1,7 @@
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
pre_commit.log
pre_commit.ps1
# User-specific files
*.suo
*.user

@ -1,4 +1,12 @@
namespace FileSearch
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
namespace FileSearch
{
partial class ExceptionsForm
{

@ -1,4 +1,12 @@
using FileSearch.Logic.Model.Engine;
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
using FileSearch.Logic.Model.Engine;
using FileSearch.Logic.UI.Entries;
namespace FileSearch

@ -1,4 +1,12 @@
namespace FileSearch
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
namespace FileSearch
{
partial class LargeListViewUserControl
{

@ -1,4 +1,12 @@
using FileSearch.Logic.Model.Engine;
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
using FileSearch.Logic.Model.Engine;
using FileSearch.Logic.UI.Entries;
using FileSearch.Logic.UI.ViewBuilders;

@ -1,4 +1,12 @@
using System.Globalization;
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
using System.Globalization;
namespace FileSearch.Logic
{

@ -1,4 +1,12 @@
using FileSearch.Logic.Model.CriterionSchemas;
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
using FileSearch.Logic.Model.CriterionSchemas;
using FileSearch.Logic.Model.Engine;
using System.Collections.ObjectModel;

@ -1,4 +1,12 @@
using FileSearch.Logic.Model.Engine;
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
using FileSearch.Logic.Model.Engine;
using System.Collections.ObjectModel;
namespace FileSearch.Logic.Model.Contexts

@ -1,4 +1,12 @@
using FileSearch.Logic.Model.Engine;
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
using FileSearch.Logic.Model.Engine;
namespace FileSearch.Logic.Model.CriterionSchemas
{

@ -1,4 +1,12 @@
using FileSearch.Logic.Model.EncodingDetection;
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
using FileSearch.Logic.Model.EncodingDetection;
using FileSearch.Logic.Model.Engine;
using System.Text;

@ -1,4 +1,12 @@
using FileSearch.Logic.Model.Engine;
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
using FileSearch.Logic.Model.Engine;
namespace FileSearch.Logic.Model.CriterionSchemas
{

@ -1,4 +1,12 @@
using FileSearch.Logic.Model.Engine;
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
using FileSearch.Logic.Model.Engine;
using FileSearch.Logic.Model.Entities;
namespace FileSearch.Logic.Model.CriterionSchemas

@ -1,4 +1,12 @@
using FileSearch.Logic.Model.Engine;
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
using FileSearch.Logic.Model.Engine;
using FileSearch.Logic.Model.Entities;
namespace FileSearch.Logic.Model.CriterionSchemas

@ -1,4 +1,12 @@
using FileSearch.Logic.Model.Engine;
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
using FileSearch.Logic.Model.Engine;
namespace FileSearch.Logic.Model.CriterionSchemas
{

@ -1,4 +1,12 @@
using FileSearch.Logic.Model.Contexts;
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
using FileSearch.Logic.Model.Contexts;
using FileSearch.Logic.Model.Engine;
using Ionic.Zip;

@ -1,4 +1,12 @@
using FileSearch.Logic.Model.Engine;
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
using FileSearch.Logic.Model.Engine;
using System.Text.RegularExpressions;
namespace FileSearch.Logic.Model.CriterionSchemas

@ -1,4 +1,12 @@
using FileSearch.Logic.Model.Engine;
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
using FileSearch.Logic.Model.Engine;
using System.Text.RegularExpressions;
namespace FileSearch.Logic.Model.CriterionSchemas

@ -1,4 +1,12 @@
using FileSearch.Logic.Model.Engine;
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
using FileSearch.Logic.Model.Engine;
namespace FileSearch.Logic.Model.CriterionSchemas
{

@ -1,4 +1,12 @@
using System.Text;
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
using System.Text;
namespace FileSearch.Logic.Model.EncodingDetection
{

@ -1,4 +1,12 @@
namespace FileSearch.Logic.Model.Engine
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
namespace FileSearch.Logic.Model.Engine
{
public class CriterionBase
{

@ -1,4 +1,12 @@
namespace FileSearch.Logic.Model.Engine
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
namespace FileSearch.Logic.Model.Engine
{
public enum CriterionWeight
{

@ -1,4 +1,12 @@
using FileSearch.Logic.Model.EncodingDetection;
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
using FileSearch.Logic.Model.EncodingDetection;
using FileSearch.Logic.Model.Entities;
namespace FileSearch.Logic.Model.Engine

@ -1,4 +1,12 @@
using System.Runtime.InteropServices;
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
using System.Runtime.InteropServices;
namespace FileSearch.Logic.Model.Engine
{

@ -1,4 +1,12 @@
namespace FileSearch.Logic.Model.Engine
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
namespace FileSearch.Logic.Model.Engine
{
public interface ICriterion
{

@ -1,4 +1,12 @@
namespace FileSearch.Logic.Model.Engine
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
namespace FileSearch.Logic.Model.Engine
{
public interface ICriterionContext
{

@ -1,4 +1,12 @@
namespace FileSearch.Logic.Model.Engine
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
namespace FileSearch.Logic.Model.Engine
{
public class SearchException
{

@ -1,4 +1,12 @@
using System.Xml;
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
using System.Xml;
using Ionic.Zip;
namespace FileSearch.Logic.Model.Engine

@ -1,4 +1,12 @@
namespace FileSearch.Logic.Model.Engine
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
namespace FileSearch.Logic.Model.Engine
{
public class SearchResult
{

@ -1,4 +1,12 @@
namespace FileSearch.Logic.Model.Engine
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
namespace FileSearch.Logic.Model.Engine
{
internal class TimedCallback<T>
{

@ -1,4 +1,12 @@
namespace FileSearch.Logic.Model.Entities
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
namespace FileSearch.Logic.Model.Entities
{
internal enum FileDateOption
{

@ -1,4 +1,12 @@
namespace FileSearch.Logic.Model.Tree
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
namespace FileSearch.Logic.Model.Tree
{
public class TreeViewBuilder
{

@ -1,4 +1,12 @@
namespace FileSearch.Logic.Plugin
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
namespace FileSearch.Logic.Plugin
{
internal class ErrorPlugin : IPluginFacade
{

@ -1,4 +1,12 @@
using FileSearch.Logic.Model.Engine;
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
using FileSearch.Logic.Model.Engine;
namespace FileSearch.Logic.Plugin
{

@ -1,4 +1,12 @@
using FileSearch.Logic.UI.ViewBuilders;
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
using FileSearch.Logic.UI.ViewBuilders;
namespace FileSearch.Logic.Plugin
{

@ -1,4 +1,12 @@
using FileSearch.Logic.UI.ViewBuilders;
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
using FileSearch.Logic.UI.ViewBuilders;
namespace FileSearch.Logic.Plugin
{

@ -1,4 +1,12 @@
using System.Reflection;
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
using System.Reflection;
namespace FileSearch.Logic.Plugin
{

@ -1,4 +1,12 @@
namespace FileSearch.Logic.UI.Entries
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
namespace FileSearch.Logic.UI.Entries
{
public interface IPathEntry
{

@ -1,4 +1,12 @@
namespace FileSearch.Logic.UI.Entries
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
namespace FileSearch.Logic.UI.Entries
{
internal class PathEntry : IPathEntry
{

@ -1,4 +1,12 @@
namespace FileSearch.Logic.UI.Entries
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
namespace FileSearch.Logic.UI.Entries
{
internal class PathEventArgs : EventArgs
{

@ -1,4 +1,12 @@
using FileSearch.Logic.Model.Engine;
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
using FileSearch.Logic.Model.Engine;
namespace FileSearch.Logic.UI.Entries
{

@ -1,4 +1,12 @@
using FileSearch.Logic.UI.Entries;
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
using FileSearch.Logic.UI.Entries;
namespace FileSearch.Logic.UI.ViewBuilders
{

@ -1,4 +1,12 @@
using FileSearch.Logic.Model.Engine;
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
using FileSearch.Logic.Model.Engine;
using FileSearch.Logic.UI.Entries;
namespace FileSearch.Logic.UI.ViewBuilders

@ -1,4 +1,12 @@
namespace FileSearch.Logic.UI.ViewBuilders
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
namespace FileSearch.Logic.UI.ViewBuilders
{
internal static class ViewBuilderFactory
{

@ -1,4 +1,12 @@
namespace FileSearch
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
namespace FileSearch
{
partial class MainForm
{

@ -1,3 +1,11 @@
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
using FileSearch.Logic;
using FileSearch.Logic.Model.Engine;
using FileSearch.Logic.Model.Tree;
@ -28,7 +36,7 @@ namespace FileSearch
#region Logic
/// <summary>
/// Подготовка к запуску сеанса поиска
/// Подготовка к запуску сеанса поиска
/// </summary>
private DirectoryInfo SearchInit()
{
@ -41,14 +49,14 @@ namespace FileSearch
SaveInfo(comboBox: true);
SearchBtn.Text = @"Остановить";
statusLabel.Text = @"Поиск... Пожалуйста подождите.";
SearchBtn.Text = @"Остановить";
statusLabel.Text = @"Поиск... Пожалуйста подождите.";
statusLabelExceptions.Text = null;
return new DirectoryInfo(DirPathTxt.Text.Trim('\\') + "\\");
}
/// <summary>
/// Обработка события обнаружения данных
/// Обработка события обнаружения данных
/// </summary>
/// <param name="searchResults">searchResults</param>
private void LoadList(IEnumerable<SearchResult> searchResults)
@ -66,13 +74,13 @@ namespace FileSearch
}
lstResults.AddSearchResults(searchResults);
AddTimerTextInfo(_fileSearcher.CurrentTime.GetFriendlyNotation()); // обновляем таймер
AddFindFilesCount(lstResults.Count); // Обновляем число обнаруженных файлов
AddThreeViewData(searchResults); // Обновляем дерево директорий
AddTimerTextInfo(_fileSearcher.CurrentTime.GetFriendlyNotation()); // обновляем таймер
AddFindFilesCount(lstResults.Count); // Обновляем число обнаруженных файлов
AddThreeViewData(searchResults); // Обновляем дерево директорий
}
/// <summary>
/// Обработка окончания сеанса поиска
/// Обработка окончания сеанса поиска
/// </summary>
private void LoadListFinished()
{
@ -84,23 +92,23 @@ namespace FileSearch
var exceptions = _fileSearcher.Exceptions;
if (exceptions.Count > 0)
statusLabelExceptions.Text = string.Format(CultureInfo.InvariantCulture, "{0} ошибок в поиске", exceptions.Count);
statusLabelExceptions.Text = string.Format(CultureInfo.InvariantCulture, "{0} ошибок в поиске", exceptions.Count);
SearchBtn.Text = @"Поиск";
PauseBtn.Text = @"Пауза";
SearchBtn.Text = @"Поиск";
PauseBtn.Text = @"Пауза";
SearchBtn.Enabled = true;
statusLabel.Text = @"Завершено за " + _fileSearcher.OperatingTime.GetFriendlyNotation() + @". Найдено: " + lstResults.Count;
statusLabel.Text = @"Завершено за " + _fileSearcher.OperatingTime.GetFriendlyNotation() + @". Найдено: " + lstResults.Count;
toolStripProgressBar1.Style = ProgressBarStyle.Blocks;
if (DirsTreeView.Nodes.Count > 0)
DirsTreeView.Focus();
}
/// <summary>
/// Конфигурирование критерий поиска
/// Конфигурирование критерий поиска
///
/// TODO: В будущем можно сделать тонкую настройку
/// критерий поиска в UI указав Control для включения тех или иных
/// TODO: В будущем можно сделать тонкую настройку
/// критерий поиска в UI указав Control для включения тех или иных
/// </summary>
/// <param name="directoryInfo">directoryInfo</param>
/// <param name="text">text</param>
@ -128,7 +136,7 @@ namespace FileSearch
}
/// <summary>
/// Построение дерева директорий
/// Построение дерева директорий
/// </summary>
/// <param name="searchResults">IEnumerable</param>
private void AddThreeViewData(IEnumerable<SearchResult> searchResults)
@ -137,7 +145,7 @@ namespace FileSearch
}
/// <summary>
/// Инициализация чтения максимального числа файлов в директории
/// Инициализация чтения максимального числа файлов в директории
/// </summary>
private void LoadingMaxFiles()
{
@ -153,7 +161,7 @@ namespace FileSearch
}
/// <summary>
/// Формирование async задачи на чтение максимального числа файлов в директории
/// Формирование async задачи на чтение максимального числа файлов в директории
/// </summary>
/// <param name="searchPath">path</param>
public async Task GetAllFilesExecute(string searchPath)
@ -166,7 +174,7 @@ namespace FileSearch
}
/// <summary>
/// Получение максимального числа файлов в директории (с вложенными внутри)
/// Получение максимального числа файлов в директории (с вложенными внутри)
/// </summary>
/// <param name="searchPath">path</param>
private void GetAllFiles(string searchPath)
@ -183,7 +191,7 @@ namespace FileSearch
}
catch (OperationCanceledException)
{
// Обработка отмены операции
// Обработка отмены операции
AddMaxFilesTxtInfo(count.ToString());
AddProgressBarLoadMax(false);
}
@ -227,28 +235,28 @@ namespace FileSearch
}
catch (OperationCanceledException)
{
throw; // Пробрасываем исключение дальше для обработки в вызывающем коде
throw; // Пробрасываем исключение дальше для обработки в вызывающем коде
}
catch (UnauthorizedAccessException)
{
return 0; // Пропускаем каталоги, к которым нет доступа
return 0; // Пропускаем каталоги, к которым нет доступа
}
catch (DirectoryNotFoundException)
{
return 0; // Пропускаем отсутствующие каталоги
return 0; // Пропускаем отсутствующие каталоги
}
}
/// <summary>
/// Сохранение полей (простейшее)
/// Сохранение полей (простейшее)
/// </summary>
/// <param name="comboBox">сохранение выбранного пути в comboBox в текущей сессии</param>
/// <param name="comboBox">сохранение выбранного пути в comboBox в текущей сессии</param>
private void SaveInfo(bool comboBox = false)
{
File.WriteAllText(@"DirInfo.dat", DirPathTxt.Text);
File.WriteAllText(@"FileRegex.dat", FileRegexPathTxt.Text);
//сохранение выбранного пути для поиска в текущей сессии
//сохранение выбранного пути для поиска в текущей сессии
if (comboBox)
{
var content = DirPathTxt.SelectedItem != null ? (string)DirPathTxt.SelectedItem : DirPathTxt.Text;
@ -308,7 +316,7 @@ namespace FileSearch
var dirInfo = SearchInit();
if (!dirInfo.Exists)
{
MessageBox.Show(@"Путь не существует.", @"Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
MessageBox.Show(@"Путь не существует.", @"Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
@ -321,8 +329,8 @@ namespace FileSearch
{
_fileSearcher?.Pause((state) =>
{
PauseBtn.Text = (state) ? "Далее" : "Пауза";
}, (PauseBtn.Text == "Далее") ? false : true);
PauseBtn.Text = (state) ? "Далее" : "Пауза";
}, (PauseBtn.Text == "Далее") ? false : true);
}
private void DirPathTxt_TextChanged(object sender, EventArgs e)
@ -354,7 +362,7 @@ namespace FileSearch
{
if (_fileSearcher != null && _fileSearcher.IsRunning)
{
MessageBox.Show("Поиск ещё идёт!");
MessageBox.Show("Поиск ещё идёт!");
return;
}
@ -382,7 +390,7 @@ namespace FileSearch
#region Async UI
/// <summary>
/// Обновление AllFilesTxt
/// Обновление AllFilesTxt
/// </summary>
/// <param name="text">count</param>
private void AddMaxFilesTxtInfo(string text)
@ -398,7 +406,7 @@ namespace FileSearch
}
/// <summary>
/// Обновление pictureBoxLoading
/// Обновление pictureBoxLoading
/// </summary>
/// <param name="visible">bool</param>
private void AddProgressBarLoadMax(bool visible)
@ -414,7 +422,7 @@ namespace FileSearch
}
/// <summary>
/// Обновление timerTxt
/// Обновление timerTxt
/// </summary>
/// <param name="text">count</param>
private void AddTimerTextInfo(string text)
@ -430,7 +438,7 @@ namespace FileSearch
}
/// <summary>
/// Обновление FindFilesTxt
/// Обновление FindFilesTxt
/// </summary>
/// <param name="count">count</param>
private void AddFindFilesCount(int count)

@ -1,14 +1,22 @@
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
namespace FileSearch
{
internal static class Program
{
/// <summary>
/// Основная точка входа в приложение.
/// Основная точка входа в приложение.
/// </summary>
[STAThread]
static void Main()
{
// Чтобы настроить конфигурацию приложения, например установить настройки высокого разрешения или шрифт по умолчанию,
// Чтобы настроить конфигурацию приложения, например установить настройки высокого разрешения или шрифт по умолчанию,
// https://aka.ms/applicationconfiguration.
ApplicationConfiguration.Initialize();
Application.Run(new MainForm());

@ -1,4 +1,12 @@
//------------------------------------------------------------------------------
/*
* Author: Nikolay Dvurechensky
* Site: https://www.dvurechensky.pro/
* Gmail: dvurechenskysoft@gmail.com
* Last Updated: 12 мая 2025 06:51:53
* Version: 1.0.7
*/
//------------------------------------------------------------------------------
// <auto-generated>
// Этот код создан программой.
// Исполняемая версия:4.0.30319.42000

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 MiB

After

Width:  |  Height:  |  Size: 5.2 MiB