Загрузка данных


dsusjsjjs

private void SearchTextBox_KeyDown(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Enter)
        SearchButton_Click(sender, e);
}

private void SearchButton_Click(object sender, RoutedEventArgs e)
{
    string query = SearchTextBox.Text.Trim();

    if (string.IsNullOrEmpty(query))
    {
        LoadDirectory(currentPath);
        return;
    }

    if (!Directory.Exists(currentPath))
        return;

    try
    {
        var items = new List<FileItem>();

        foreach (string directory in Directory.GetDirectories(currentPath, "*" + query + "*", SearchOption.AllDirectories))
        {
            try
            {
                DirectoryInfo info = new DirectoryInfo(directory);
                items.Add(new FileItem
                {
                    Name = info.Name,
                    Type = "Папка",
                    Size = "",
                    Date = info.LastWriteTime.ToString("dd.MM.yyyy HH:mm"),
                    FullPath = info.FullName,
                    IsDirectory = true,
                    Icon = "Folder"
                });
            }
            catch { }
        }

        foreach (string file in Directory.GetFiles(currentPath, "*" + query + "*", SearchOption.AllDirectories))
        {
            try
            {
                FileInfo info = new FileInfo(file);
                items.Add(new FileItem
                {
                    Name = info.Name,
                    Type = GetFileType(info.Extension),
                    Size = FormatSize(info.Length),
                    Date = info.LastWriteTime.ToString("dd.MM.yyyy HH:mm"),
                    FullPath = info.FullName,
                    IsDirectory = false,
                    Icon = GetFileIcon(info.Extension)
                });
            }
            catch { }
        }

        FilesListView.ItemsSource = items;
        ItemsCountText.Text = $"Найдено: {items.Count}";
        StatusText.Text = $"Поиск: {query}";
    }
    catch (UnauthorizedAccessException)
    {
        MessageBox.Show("Нет доступа к некоторым папкам.", "Доступ запрещён", MessageBoxButton.OK, MessageBoxImage.Warning);
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message, "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
    }
}

jdjdjdjd