Продолжаю писать плагин для Yandex.Fotki... Проблема в том, что список фотографий можно получить значительно быстрее чем их размер, поэтому при вызове FindFirst/FindNext поле nFileSize устанавливаю в 0...
Есть возможность создать колонку размера файла с использованием FsContentGetValue, но тогда эта колонка не будет учитываться при подсчёте размеров папки или при расчёте времени копирования...
Подскажите возможные пути решения...
Возможно ли вернуть размер файла через FsContentGetValue ?
Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik
Буфер для дополнительных данных.
Создать в памяти список соответствий "файл"-"размер". Поле "размер" заполнять при получении данных соответствующей колонки. При следующем обновлении списка файлов брать размер из буфера. Буфер также можно заполнять и при получении самого файла; в общем получается что-то вроде кеша для атрибутов.
Хотя я бы сделал вывод размера опциональным. У пользователя быстрое соединение и безлимитный траффик? Он выбирает соответствующую галочку, и все атрибуты запрашиваются сразу. Нет? Тогда FsContentGetValue и поле размера размера как ft_delayed.
Создать в памяти список соответствий "файл"-"размер". Поле "размер" заполнять при получении данных соответствующей колонки. При следующем обновлении списка файлов брать размер из буфера. Буфер также можно заполнять и при получении самого файла; в общем получается что-то вроде кеша для атрибутов.
Хотя я бы сделал вывод размера опциональным. У пользователя быстрое соединение и безлимитный траффик? Он выбирает соответствующую галочку, и все атрибуты запрашиваются сразу. Нет? Тогда FsContentGetValue и поле размера размера как ft_delayed.
А лучше просто сделать 2 поля размера файла - одно, которое возвращает сразу, а другое - которое в фоне, т.е. с ft_delayed. И тогда юзер сам выберет, какое из них использовать для колонки размера.D1P писал(а):У пользователя быстрое соединение и безлимитный траффик? Он выбирает соответствующую галочку, и все атрибуты запрашиваются сразу. Нет? Тогда FsContentGetValue и поле размера размера как ft_delayed.