powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Проблема с foreach...
5 сообщений из 5, страница 1 из 1
Проблема с foreach...
    #38721764
iluxa1810
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Метод имеет 3 ветвления:
0- Означает, что произошел первый вход в метод. На этом этапе выполняется перебор элементов из листа Path. В Path содержаться список папок, которые удалять не нужно после обхода.
1-Означает, что элемент был найден в списке и эту папку после обхода удалять не нужно
2-Означает, что после обхода мы удаляем эту папку.


При 2 мы выполняем обход потому что,-помимо JPG файлов, в папке могут содержаться другие файлы, если это так, то папка не удалиться и запишеться лог(Что-то типа"Требуется вмешательство пользователя").

Почему-то WriteLine в Case 0 ничего не выводит, хотя List содержит, существующие названия папок.
Я посмотрел foreach в дебаггере и он почему-то выполняется 8 раз, хотя в директории 30 папок...

Где я допустил ошибку?
Код: 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.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
public static void scan(System.IO.DirectoryInfo dirrectory, List<pathes> path = null, int flag = 0)
        {
            System.IO.FileInfo[] files = null;
            System.IO.DirectoryInfo[] subDirs = null;
            files = dirrectory.GetFiles();
            subDirs = dirrectory.GetDirectories();
 
 
            switch (flag)
            {
 
                case 0:
                    foreach (var dir in subDirs)
                    {
                        if (path != null)
                        {
                            foreach (var p in path)
                            {
 
                                if (dir.Name == p.Path)
                                {
                                    Console.WriteLine(dir.Name);
                                    scan(dir, null, 1);
                                    
                                }
                                else
                                {
                                    scan(dir, null, 2);
                                    //dir.Delete();
                                }
                            }
                        }
 
 
                        //Console.WriteLine(dir);
                    }
                    break;
                case 1:
                    files = dirrectory.GetFiles();
                    foreach (var file in files)
                    {
                        if (file.Extension == "jpg")
                        {
                            Console.WriteLine(file);
                        }
                        foreach (var dir in subDirs)
                        {
                            if (Regex.Match(dir.Name, @".*ыгр.*|.*агр.*").Success)
                            {
                                scan(dir, null, 1);
                            }
                            else scan(dir, null, 2);
                        }
                    }
                    break;
                case 2:
                     files = dirrectory.GetFiles();
                    foreach (var file in files)
                    {
                        if (file.Extension == "jpg")
                        {
                            Console.WriteLine(file);
                        }
                        foreach (var dir in subDirs)
                        {
                            scan(dir, null, 2);
                        }
                    }
                    break;
            }
 
        }
...
Рейтинг: 0 / 0
Проблема с foreach...
    #38721771
iluxa1810
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iluxa1810,

Программа оказывается работает, но долго обрабатывает 1 директорию.
...
Рейтинг: 0 / 0
Проблема с foreach...
    #38721818
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
iluxa1810,

Вы бы лучше написали в чем смысл Вашей задачи. А то у меня сердце вещует, что Вы не с того конца решаете
...
Рейтинг: 0 / 0
Проблема с foreach...
    #38722045
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В методе Scan не нужно ничего удалять. Название какбэ обязывает.

Сделайте 3 метода, не поленитесь.
...
Рейтинг: 0 / 0
Проблема с foreach...
    #38722068
НемоКэп42
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79В методе Scan не нужно ничего удалять. Название какбэ обязывает.

Сделайте 3 метода, не поленитесь.
Ага. )))
http://c2.com/cgi/wiki?GodMethod
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Проблема с foreach...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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