powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Фильтрация файлов в C#
5 сообщений из 5, страница 1 из 1
Фильтрация файлов в C#
    #39540240
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочу сделать так, Но немного вступления, имеется такая вот инфа, пример см. на скрин
Вся эта инфа храниться (пока храниться) в базе данных Access
На данный момент программа проверяет лог файлы на наличие ошибок таких как ora и exp в каталогах по условию «Наличие одновременно двух файлов dmp и log»
А теперь сама суть:
1. Что нужно прописать в коде, чтобы проверялся размер log файла так как если он имеет размер в 0 байт, то бэкап не прошел? (нужен код - как говориться кратко и сердито, если возможно)))
2. И самое интересное, я хочу сделать такую фишку, например, двойным щелчком по строке в поле расписание для соответствующей базы данных (поле ID есть это очень сильно упрощает задачу) открывалась форма где можно было указать значения, соответствующие расписанию по дням выполнения в планировщике Windows запуск скриптов для бэкапов.
Например, как на скрине
пон –понедельник,
вт- вторник и т.д.
А с помощью чекбоксов думаю так лучше, но может кто подскажет, другие варианты
выбирать дни недели?
Много написал конечно, но хотел расписать, что именно хочу сделать
В общем идея такая, упростить максимально настройку условия фильтрации файлов по дате изменения, для дальнейшего анализа на ошибки.
Ко всему этом прилагаю отрывок кода программы.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
// КНОПКА ПРОВЕРКА БЭКАПОВ НА ИНЦИДЕНТЫ 
        public void button1_Click(object sender, EventArgs e)
        {
            listBox1.Items.Clear();
            String ora = "ORA-"; // если есть в лог файле ошибки ORA
            String exp = "EXP-"; // если есть в лог файле ошибки EXP


            // Расписание
            DateTime from_date = DateTime.Today; // от начало суток
            DateTime to_date = DateTime.Now; // текущию сутки

            // Просмотр файлов в каталогах
            foreach (DataGridViewRow row in dataGridView1.Rows)
            {
                if (!row.IsNewRow)
                {
                    var cat = row.Cells[2].Value; // просмотр столбца каталог
                    DirectoryInfo dir = new DirectoryInfo(cat.ToString()); // выбраные каталоги
                    var namedb = row.Cells[1].Value; // значение строк столбца каталог 
                    var db = new DirectoryInfo(namedb.ToString());
                    FileInfo[] files = dir.GetFiles("*.log");
                    FileInfo[] files2 = dir.GetFiles("*.dmp");

                    // Проверка наличия файлов
                    var log = File.Exists(dir.ToString() + "\\" + files); // проверка наличия log файла
                    var dmp = File.Exists(dir.ToString() + "\\" + files2); // проверка наличия dmp файла

                    if (files.Length > 0 && files2.Length > 0) //условия если два файлов
                    {
                        foreach (FileInfo f in files) // просмотр всех файлов тхт в каталоге
                        {
                            StreamReader str = new StreamReader(dir.ToString() + "\\" + f);
                            while (!str.EndOfStream)
                            {
                                string st = str.ReadLine();
                                if (st.StartsWith(ora) || st.StartsWith(exp)) // поиск ошибок
                                {
                                    listBox1.Invoke(new MethodInvoker(() => listBox1.Items.Add(db.ToString() + " " + "[Бэкап прошел с ошибками]")));
                                    break;
                                }
                                else
                                {
                                    listBox1.Invoke(new MethodInvoker(() => listBox1.Items.Add(db.ToString() + " " + "[Бэкап прошел успешно]")));
                                    break;
                                }
                            }
                        }
                    }
                    else
                    {
                        listBox1.Invoke(new MethodInvoker(() => listBox1.Items.Add(db.ToString() + " " + "[Бэкап не прошел]")));
                    }
                }
            }
        }



По первому вопросу прошу работающий код решения вопроса
По второму стратегию хотя бы)))

А вот и сам скрин:
...
Рейтинг: 0 / 0
Фильтрация файлов в C#
    #39540622
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SAS2014,
Оракл можно настроить вести архив по расписанию.
...
Также в одну или рядом папку.
Также сразу инстанс со всеми бд.
Тогда осталось только читать лог.
Это же не проблема?
...
Рейтинг: 0 / 0
Фильтрация файлов в C#
    #39540631
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
var info = new FileInfo(filename);
if (info.Length < 1)
{
Debug.Print("File is empty");
}
...
Рейтинг: 0 / 0
Фильтрация файлов в C#
    #39540797
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123SAS2014,
Оракл можно настроить вести архив по расписанию.
...
Также в одну или рядом папку.
Также сразу инстанс со всеми бд.
Тогда осталось только читать лог.
Это же не проблема?

я без оракле обойдусь, мне надо как можно проще выбрать среду хранения инфы
...
Рейтинг: 0 / 0
Фильтрация файлов в C#
    #39540852
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пишу так
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
// размер лог файлов

                        var size = dir.ToString() + "\\" + files;
                        long sizelog = size.Length;
                     

                        if (files.Length > 0 && files2.Length > 0 && sizelog > 0)
                    
                        // поиск ошибок

                    {
                      .....
                    }



Думаю сейчас прога выполнит поиск ошибок в логах дампов
по условиям если дамп и сам лог файл существует в каталоге, и лог файл имеет размер больше 0 байт
то будет выполняться поиск
если нет то в листбокс закинется соответствующие надписи

Но не тут то было, почему то нулевой файл вообще не видит программа?
Потому, что если програ бы его увидела, то в результате проверки на ошибки, попала бы строка в листбокс "TEST бэкап прошел без ошибок"
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Фильтрация файлов в C#
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]