Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.18;
Скачать: CL | DM;

Вниз

размер каталога вместе с содержимым   Найти похожие ветки 

 
SpyBoy ©   (2005-08-22 12:54) [0]

Для того, чтобы узнать размер каталога вместе с содержимым, использую конструкцию
procedure GetDirSize(const aPath: string; var SizeDir: Int64);
var
 SR: TSearchRec;
 tPath: string;
begin
 tPath := IncludeTrailingBackSlash(aPath);
 if FindFirst(tPath + "*.*", faAnyFile, SR) = 0 then
 begin
   try
     repeat
       if (SR.Name = ".") or (SR.Name = "..") then
         Continue;
       if (SR.Attr and faDirectory) <> 0 then
       begin
         GetDirSize(tPath + SR.Name, SizeDir);
         Continue;
       end;
       SizeDir := SizeDir +
         (SR.FindData.nFileSizeHigh shl 32) +
         SR.FindData.nFileSizeLow;
     until FindNext(SR) <> 0;
   finally
     Sysutils.FindClose(SR);
   end;
 end;
end;
Пример использования:

procedure TForm1.Button1Click(Sender: TObject);
var
 SizeDir: Int64;
begin
 SizeDir := 0;
 GetDirSize("c:\winnt", SizeDir);
 ShowMessage("Размер каталога " + IntToStr(SizeDir));
end;

Однако это так долго!!
Может есть болеее быстрый способ-
аналог правой кнопкой по папке->свойства ?


 
begin...end ©   (2005-08-22 14:05) [1]

uses ComObj;

var
 FSObject, Folder: OleVariant;
begin
 FSObject := CreateOleObject("Scripting.FileSystemObject");
 Folder := FSObject.GetObject("C:\WinNT");
 ShowMessage(IntToStr(Folder.Size))
end.


 
Anatoly Podgoretsky ©   (2005-08-22 14:09) [2]

SpyBoy ©   (22.08.05 12:54)  
Так правой кнопкой по папке->свойства также очень долго.


 
SpyBoy ©   (2005-08-23 23:00) [3]

begin...end ©   (22.08.05 14:05) [1]

НЕ работает однако:(((((((((
---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EOleError with message "Method "GetObject" not supported by automation object". Process stopped. Use Step or Run to continue.
---------------------------
OK   Help  
---------------------------


 
Юрий Зотов ©   (2005-08-23 23:25) [4]

Там GetFolder. И Size - уже строка.

procedure TForm1.Button1Click(Sender: TObject);
var
 FSObject, Folder: OleVariant;
begin
 FSObject := CreateOleObject("Scripting.FileSystemObject");
 Folder := FSObject.GetFolder("C:\WinNT");
 ShowMessage(Folder.Size)
end;



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

Текущий архив: 2005.09.18;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.037 c
14-1125115494
Santrope
2005-08-27 08:04
2005.09.18
Microsoft SQL Server 2005 уже вышел, или только в разработке?


2-1123769274
Гость22
2005-08-11 18:07
2005.09.18
Как при запуске DBNavigator скрыть некоторые кнопки?


14-1124634179
Yegorchic
2005-08-21 18:22
2005.09.18
Вопрос по в Word у


4-1122018050
Denis
2005-07-22 11:40
2005.09.18
Можно ли динаически создать форму в чужом приложении?


14-1125051879
DLLKos88
2005-08-26 14:24
2005.09.18
код для склеивания двух exe файлов???