Форум 3DNews
Вернуться   Форум 3DNews > Программирование > Программирование

Ответ Создать новую тему
Опции темы Опции просмотра
Непрочитано 03.12.2004, 14:45   [включить плавающее окно]   #1
legozaur
Мужской Общительный
Автор темы
 
Аватар для legozaur
 
Регистрация: 14.11.2003
Адрес: Новосибирск
Определение размера папки на средствами Delphi

Вот, люди, помогите ламеру . Шучу, шучу!

Вот в чём проблема. Я задался целью программно определить размер произвольно заданной папки (folder, directory - каму как больше по душе!).
Да вот задался-то задался, а как сделать ниняю 8-). Подскажите функцию.
legozaur вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 03.12.2004, 16:33   [включить плавающее окно]   #2
Sanya
Мужской Опытный
 
Аватар для Sanya
 
Регистрация: 22.03.2003
Адрес: Апатиты
Сканируешь содержимое папки (директории, etc) и считаешь размер лежащих в ней файлов. Ну и подкаталоги рекурсивно обходить не забывай.
__________________
Лечить и судить умеют и могут все, а вот рассчитать несущую балку?
Sanya вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 03.12.2004, 17:05   [включить плавающее окно]   #3
Ну занято так занято...
Заслуженный
 
Аватар для Ну занято так занято...
 
Регистрация: 19.12.2003
Может не ипать М? Обратись к API.
Ну занято так занято... вне форума  
Ответить с цитированием
Непрочитано 03.12.2004, 17:46   [включить плавающее окно]   #4
Johnnie Walker
Опытный
 
Регистрация: 28.04.2004
Такие вопросы начали задавать, просто дикость какая-то...
Johnnie Walker вне форума  
Ответить с цитированием
Непрочитано 03.12.2004, 21:51   [включить плавающее окно]   #5
Ну занято так занято...
Заслуженный
 
Аватар для Ну занято так занято...
 
Регистрация: 19.12.2003
Johnnie Walker
А вот я заметил, что на буржуйских форумах на вопрос стараются ответить. А на отечественных - сумничать. "Поиск нах, обсуждалось", "Яндекс, Гугль", "Ты чо, такие вопросы задаёшь, дурак, да?"
Ты что сказать-то хотел?
Ну занято так занято... вне форума  
Ответить с цитированием
Непрочитано 04.12.2004, 00:37   [включить плавающее окно]   #6
Johnnie Walker
Опытный
 
Регистрация: 28.04.2004
Ну занято так занято..., пусть стараются, хотя мне показалось, что там не принято задавать вопросы типа "мне неохота искать и думать, скажите что делать". А хотел сказать то, что сначала неплохо бы почитать доки или хотя бы поискать в яндексе ("отечественная" фраза!) - третья ссылка на запрос "определение размера каталога" выдает готовый код на дельфи, неужели так сложно поискать?
Johnnie Walker вне форума  
Ответить с цитированием
Непрочитано 08.12.2004, 06:14   [включить плавающее окно]   #7
legozaur
Мужской Общительный
Автор темы
 
Аватар для legozaur
 
Регистрация: 14.11.2003
Адрес: Новосибирск
Народ!
Я, конечно понимаю всю обсурдность данной полемики, да и не ко двору это - на тематических форумах перепираться.
Sanya и все-все-все!
Я уже такое сделал (рекурсия и всё такое). Вообще, проблема то и стоит в том, чтобы при прохождении папки "по файлам" определить, какая часть ещё не просмотрена. Ну что-то вроде ProgressBar хотелось бы сделать. Согласитесь, что проходить каталог два раза - один раз с целью определения размера, а другой раз - с целью совершения конкретных операций с файлами - нерационально. Я думал, что может быть есть какое-то решение, позволяющее сразу получить размер каталога системными средствами. Думаю, что такой подход был бы наиболее правильным с точки зрения оптимизации.
Johnnie Walker
Я только потому такой вопрос задал, что времени на поиск соотв. инфы у меня нет (другими проектами завален). Думал, что кто-то знает, дак и подскажет сразу. Разные ведь бывают ситуации. Если человек что-то спрашивает что-то простое, то это отнюдь не говорит о его умственных способностях. Добрее надо быть!
legozaur вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 08.12.2004, 09:51   [включить плавающее окно]   #8
Sanya
Мужской Опытный
 
Аватар для Sanya
 
Регистрация: 22.03.2003
Адрес: Апатиты
Цитата (legozaur) »
Я думал, что может быть есть какое-то решение, позволяющее сразу получить размер каталога системными средствами.
ИМХО, нет таких системных средств.
Цитата (legozaur) »
Ну что-то вроде ProgressBar хотелось бы сделать.
Нарисуй анимированную картинку, если уж так приспичило.
__________________
Лечить и судить умеют и могут все, а вот рассчитать несущую балку?
Sanya вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 08.12.2004, 11:47   [включить плавающее окно]   #9
ender
Мужской Интересующийся
 
Аватар для ender
 
Регистрация: 01.07.2004
Цитата (Sanya) »
Цитата (legozaur) »
Я думал, что может быть есть какое-то решение, позволяющее сразу получить размер каталога системными средствами.
ИМХО, нет таких системных средств.
Цитата (legozaur) »
Ну что-то вроде ProgressBar хотелось бы сделать.
Нарисуй анимированную картинку, если уж так приспичило.
Бессмыслено. Размер каталога в смысле количества файлов может быть различным, соответственно верхнюю границу для прогресс-бара не определить. Есть нерекурсивный алгоритм, в котором найденные файлы помещаются в список строк. Во втором списке содержатся каталоги. Бежим по второму списку, сканируя каждый каталог в списке, и постоянно пополняя его найдеными под-каталогами, а файлы с их размерами сливаем в первый список.
ender вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 08.12.2004, 16:28   [включить плавающее окно]   #10
Sanya
Мужской Опытный
 
Аватар для Sanya
 
Регистрация: 22.03.2003
Адрес: Апатиты
Цитата (ender) »
Бессмыслено.
Так я и говорю -- вместо прогресс бара пусть будет простая анимашка -- часики там, или еще что нибудь. Типа, "ждите ответа.."
__________________
Лечить и судить умеют и могут все, а вот рассчитать несущую балку?
Sanya вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 09.12.2004, 14:02   [включить плавающее окно]   #11
legozaur
Мужской Общительный
Автор темы
 
Аватар для legozaur
 
Регистрация: 14.11.2003
Адрес: Новосибирск
Sanya
А как же тогда в Kaspersk'ом сделано?...
Впрочем знаю! Он, наверное берёт информацию о размере папок в корневом каталоге диска. А потом просто суммирует всё, что просмотрел и вычисляет ProgressBar.Position.
Дельное по-моему решение. Жаль, что пригодно только для каталогов верхнего уровня .
legozaur вне форума  
Конфигурация ПК
Ответить с цитированием
Ответ Создать новую тему

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 08:59. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 2000-2017 3DNews. All Rights Reserved.
Администрация 3DNews требует соблюдения на форуме правил и законов РФ
Серверы размещены в Hostkey