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

Вниз

Определение размера директории   Найти похожие ветки 

 
Kair   (2004-02-25 10:32) [0]

Так, сделал такое

function GetDirectorySize(Path: String; drSize: Integer): Integer;
var
sr: TSearchRec;
begin
Result := drSize;
if Path[Length(Path)] <> "\" then Path := Path + "\";
if FindFirst(Path + "*.*", faAnyFile, sr) = 0 then
repeat
if (sr.Name <> ".") and (sr.Name <> "..") then
if (sr.Attr and faDirectory) = faDirectory then
Result := GetDirectorySize(Path + sr.Name, Result) else
Result := Result + sr.Size;
until FindNext(sr) <> 0;
FindClose(sr);
end;

Пример:
Caption := IntToStr(GetDirectorySize("C:\", 0));

Кстати, поставив вместо sr.Size единицу, можно считать кол-во файлов.

Но вышла одна заковырка - если задать путь "C:\XXX", то все гуд, а если задать путь "C:\", то почему-то размер неправильно определяет, хотя кол-во файлов правильно выводит. В связи с этим было бы весьма интересно получить объяснение сего поведения
функции, теоретически мною не задуманного.


 
PVOzerski   (2004-02-25 11:28) [1]

А по сравнению с чем получается неправильно? И действительно ли неправильно (с учетом, например, возможного изменения размера swap-файла в ходе сканирования)?


 
Kair   (2004-02-26 12:04) [2]

По сравнению, чем Эксплорер показывает


 
Андрей Сенченко   (2004-02-26 12:07) [3]

Если размер посчитать и показать в байтах и килобайтах - цифры вполне могут отличаться в результате округлений например


 
Kair   (2004-02-27 08:38) [4]

А блин, понял!
На диске С: занятый размер больше чем 2Гб. А Integer только до 2 млрд. значение имеет. Надо использовать Int64.

Всем спасибо...



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

Форум: "Основная";
Текущий архив: 2004.03.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.007 c
1-25742
denik
2004-02-25 10:09
2004.03.09
Как связать Node`ы в TreeView с MDIChild окнами?


14-25864
Думкин
2004-02-17 10:54
2004.03.09
Задачка. Зачем ждать пятницы?


14-25932
alexsys
2004-02-14 08:54
2004.03.09
С праздником!


1-25805
Сергей Петров
2004-02-26 02:29
2004.03.09
Приложение зависает под win98 при выполнении bitmap.loadfromfile


4-25959
Kinderr
2003-12-23 20:08
2004.03.09
SHEmptyRecycleBin





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