Главная страница
    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.031 c
7-16779
Borys
2003-11-21 16:16
2004.02.06
CreateFileMapping


14-16736
CS
2004-01-18 14:40
2004.02.06
Бесплатный хостинг


1-16223
Крутыш
2004-01-26 18:24
2004.02.06
одна копия приложения


14-16592
Лев
2004-01-15 15:41
2004.02.06
Помогите плиз, проблема с сетью.


1-16404
AllDer
2004-01-16 01:04
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский