Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Размер ЗАНЯТОГО файла, как его определяют проводник и WinCommande


Layner ©   (2006-09-16 23:00:00) 

Здравствуйте! Есть такой рабочий код функции:

function GetMyFileSize(FileName: String): Integer;
var
 FS: TFileStream;
begin
 try
   FS := TFileStream.Create(Filename, fmShareDenyNone);
 except
   Result := -1;
 end;
 if Result <> -1 then Result := FS.Size;
 FS.Free;
end;


Но этот код не определяет размер файла, если тот файл занят. Т.е. как пример, база Access, открыт монопольно, по функции - размер не могу определить, а в проводнике/WinCimmander размер в байтах, и он меняется, если я бд меняю... Ключи все менял fmShareDenyNone - самый не требовательный.. Заранее благодарю.


Ketmar   (2006-09-17 10:50:00) [1]

> [7] Anatoly Podgoretsky ©   (17.09.06 10:48)
так я это и имел в виду. %-)


Anatoly Podgoretsky   (2006-09-17 10:48:00) [2]

Он не только неверный, но и не рабочий, правь не правь. Guav дал правильный ответ.


Ketmar   (2006-09-17 10:29:00) [3]

так один фиг код неверный изначально, зачем правите? %-)


Loginov Dmitry   (2006-09-17 10:25:00) [4]

И до try следует делать
Result := 0;


Loginov Dmitry   (2006-09-17 10:24:00) [5]

Layner ©   (16.09.06 23:00)
if Result <> -1 then Result := FS.Size;
FS.Free;


Правильней было бы:


 if Result <> -1 then
 begin
   Result := FS.Size;
   FS.Free;
 end;


guav   (2006-09-16 23:13:00) [6]

> try
>   FS := TFileStream.Create(Filename, fmShareDenyNone);
> except
>   Result := -1;
> end;
> if Result <> -1 then Result := FS.Size;
> FS.Free;

Код кстаит не верный.
При исклюении в FS.Free может попасть то угодно. Не так это правильно делать...


guav   (2006-09-16 23:11:00) [7]

FindFirstFile


Layner   (2006-09-16 23:02:00) [8]

Т.е. вопрос в том, может есть рабочий вариант подобной функции? И ещё, монопольно заянтый файл даже не возможно скопировать... А вот размер определить его крайне необходимо :(


Наверх

Титульная страница Поиск, карта сайта Написать письмо