Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Рекурсия с помощью FileInfo & DirectoryInfo / 5 сообщений из 5, страница 1 из 1
06.02.2015, 17:52
    #38873625
Alex Rezistorman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рекурсия с помощью FileInfo & DirectoryInfo
Добрый день. Вот кусок кода для расчета контрольной суммы файлов в папке. Как сделать работу данного кода рекурсивной для папки hashdir? Использую .Net 4.5. Спасибо! Вопрос простой.
Код: 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.
    public static Dictionary<string, string> HashDict(string hashdir)
    {

        Dictionary<string, string> TempDict = new Dictionary<string, string>();

        DirectoryInfo dir = new DirectoryInfo(hashdir);
        FileInfo[] files = dir.GetFiles();
        SHA256 mySHA256 = SHA256Managed.Create();
        byte[] hashValue;

        foreach (FileInfo fInfo in files)
        {
            FileStream fileStream = fInfo.Open(FileMode.Open);
            fileStream.Position = 0;
            hashValue = mySHA256.ComputeHash(fileStream);
            HashLine(hashValue);
            TempDict.Add(fInfo.FullName, HashLine(hashValue));
            fileStream.Close();

            foreach (string k in TempDict.Keys)
            {
                Console.WriteLine("{0}: {1}\n", k, TempDict[k]);
            }
        }
        return TempDict;
    }
...
Рейтинг: 0 / 0
06.02.2015, 18:18
    #38873642
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рекурсия с помощью FileInfo & DirectoryInfo
Alex Rezistorman,

чтоб сделать процедуру рекурсивной нужно просто вызывать её саму из себя.
...
Рейтинг: 0 / 0
06.02.2015, 18:20
    #38873643
Arm79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рекурсия с помощью FileInfo & DirectoryInfo
Вот, например: 15169694
...
Рейтинг: 0 / 0
09.02.2015, 17:20
    #38875020
Alex Rezistorman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рекурсия с помощью FileInfo & DirectoryInfo
Спасибо, товарищи написал, т.к. на тот момент запутался. вопрос. решен.
Касательно того, что вызывать саму себя. Это вроде хвостовой рекурсией называется и может "сожрать" много памяти.
...
Рейтинг: 0 / 0
09.02.2015, 17:32
    #38875032
Arm79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Рекурсия с помощью FileInfo & DirectoryInfo
Alex RezistormanКасательно того, что вызывать саму себя. Это вроде хвостовой рекурсией называется и может "сожрать" много памяти.
рекурсия - это вызов самой себя (в ваших терминах). А хвостовая рекурсия - это когда вызов самой себя осуществляется в конце метода.

К тому же хвостовая рекурсия вас не должна пугать - все современные компиляторы умеют оптимизировать такой код и разворачивают хвостовую рекурсию в цикл.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Рекурсия с помощью FileInfo & DirectoryInfo / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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