Эффективное хранение списка файлов

182
31 января 2018, 11:25

Допустим, есть N-ое кол-во директорий, в каждой директории хранится M файлов с уникальными именами, которые не пересекаются с файлами из других директорий.

Как бы эффективно это все поместить в словарь, что бы по названию файла я мог получить директорию, где он лежит, а ключ+значения= путю к файлу?

Решение в лоб- это на каждый ключ дублировать путь, но тогда получится, что путь к одной и той же директории будет дублироваться несколько раз, что скушает ОЗУ.

Answer 1

Как пример:

var root = @"C:\.....root_dir";
var dictionary = new Dictionary<string, string>();
var directories = Directory.GetDirectories(root);
foreach (var d in directories)
{
    var files = Directory.GetFiles(d).Select(x => Path.GetFileName(x));
    foreach (var f in files)
    {
        dictionary.Add(f, d);
    }
}

Как видите, директория добавляется для соседних файлов одна и та же. То есть для 10 соседних файлов будет ссылка на одну и ту же директорию

READ ALSO
Запустится ли приложение?

Запустится ли приложение?

Запустится ли приложение, если скомпилировано подNet Framework 3

294
Opensource Sip клиент

Opensource Sip клиент

Надо сделать SipClient с плюшками под ВиндуХотела взять какой нибудь опенсурс и допилить

234
EPPlus выдает Error saving file

EPPlus выдает Error saving file

Для работы с Excel использую библиотеку EPPlusВыгружаю данные с картинками (1635 шт)

263
Валидация строк в DataGridView перед закрытием диалогового окна

Валидация строк в DataGridView перед закрытием диалогового окна

Доброго времени суток, ГосподаУ меня есть DataGridView и обработчик на событие RowValidating, который делает e

228