Форум: "Основная";
Текущий архив: 2006.10.29;
Скачать: [xml.tar.bz2];
ВнизРазмер ЗАНЯТОГО файла, как его определяют проводник и WinCommande Найти похожие ветки
← →
Layner © (2006-09-16 23:00) [0]Здравствуйте! Есть такой рабочий код функции:
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 - самый не требовательный.. Заранее благодарю.
← →
Layner © (2006-09-16 23:02) [1]Т.е. вопрос в том, может есть рабочий вариант подобной функции? И ещё, монопольно заянтый файл даже не возможно скопировать... А вот размер определить его крайне необходимо :(
← →
guav © (2006-09-16 23:11) [2]FindFirstFile
← →
guav © (2006-09-16 23:13) [3]> try
> FS := TFileStream.Create(Filename, fmShareDenyNone);
> except
> Result := -1;
> end;
> if Result <> -1 then Result := FS.Size;
> FS.Free;
Код кстаит не верный.
При исклюении в FS.Free может попасть то угодно. Не так это правильно делать...
← →
Loginov Dmitry © (2006-09-17 10:24) [4]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;
← →
Loginov Dmitry © (2006-09-17 10:25) [5]И до try следует делать
Result := 0;
← →
Ketmar © (2006-09-17 10:29) [6]так один фиг код неверный изначально, зачем правите? %-)
← →
Anatoly Podgoretsky © (2006-09-17 10:48) [7]Он не только неверный, но и не рабочий, правь не правь. Guav дал правильный ответ.
← →
Ketmar © (2006-09-17 10:50) [8]> [7] Anatoly Podgoretsky © (17.09.06 10:48)
так я это и имел в виду. %-)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.10.29;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.042 c