Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.02.06;
Скачать: [xml.tar.bz2];

Вниз

Размер папки   Найти похожие ветки 

 
frost   (2003-11-27 20:48) [0]

Как максимально быстро узнать размер папки и количество файлов в нем?


 
DVM   (2003-11-27 21:20) [1]

ShGetFileInfo()


 
Diamond Cat   (2003-11-27 23:20) [2]

создавать файл с информацией об этой папке, соответственно нужно вешать прогу отслеживающую изменения в этой папке
(каков вопрос таков ответ)


 
frost   (2003-11-28 08:49) [3]

Разве ShGetFileInfo позволяет получить размер папки (Delphi под рукой нет) ?


 
Anatoly Podgoretsky   (2003-11-28 09:05) [4]

А что есть размер папки?


 
pasha_golub   (2003-11-28 11:00) [5]

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

ЗЫ Лучше запускать в отдельном потоке, потому как папка Windows, например, считается не быстро. У меня такого плана поток есть, чуть-чуть подправить надо под эту задачу. Мыльте, если чего


 
DVM   (2003-11-28 16:34) [6]

function GetDirectorySize(const Path: string): Int64;
var
FD : TWin32FindData;
FH : THandle;
TempSize: TULargeInteger;
begin
Result := 0;
if Path="" then exit;
if not(DirExists(Path)) then exit;
FH := FindFirstFile( PChar( Path + "*.*" ), FD );
repeat
if (FH<>INVALID_HANDLE_VALUE) and (FD.cFileName <> string(".")) and
(FD.cFileName<>string("..")) then
begin
if (FILE_ATTRIBUTE_DIRECTORY and FD.dwFileAttributes) <> 0 then
Inc(Result, GetDirectorySize(Path + FD.cFileName + "\"))
else
begin
TempSize.LowPart := FD.nFileSizeLow;
TempSize.HighPart := FD.nFileSizeHigh;
Inc(Result, TempSize.QuadPart);
end;
end;
until FindNextFile(FH,FD) = false;
FindClose(FH);
end;


 
frost   (2003-11-29 09:14) [7]

Для Anatoly Podgoretsky - размер папки код от DVM, что то подобное и у меня, но может кто то знает как можно еще быстрее,
для меня скорость определения в данном случае очень кретична.
Спасибо.


 
Anatoly Podgoretsky   (2003-11-29 10:02) [8]

Значит это размер содержимого папки, без размера самой папки. Этот расзмер естественно также не вклюяает размеры других папок. Тогда стандартный рекурсивный подсчет размеров файлов, через всеми любимый FindXXXX
К коду единственное замечание, ресурсы надо освобождать, только тогда когда они выделены.


 
Anatoly Podgoretsky   (2003-11-29 10:04) [9]

Значит это размер содержимого папки, без размера самой папки. Этот расзмер естественно также не вклюяает размеры других папок. Тогда стандартный рекурсивный подсчет размеров файлов, через всеми любимый FindXXXX
К коду единственное замечание, ресурсы надо освобождать, только тогда когда они выделены.



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.02.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.039 c
14-16616
Евгыш
2004-01-15 10:18
2004.02.06
Обработка исключений


8-16518
Дмитрий
2003-10-04 00:48
2004.02.06
Проигрывание файлов формата Ogg Vorbis (*.ogg)


1-16423
Erik
2004-01-22 11:06
2004.02.06
Зависание одной строчки кода при переполнении.


14-16657
Продолжающий
2004-01-18 12:42
2004.02.06
Куда пойти учиться ? (Москва)


7-16760
Cosinus
2003-11-18 15:34
2004.02.06
Обработка шибок при работе с СОМ-портом





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский