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

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

Как узнать размер файла? [D7]


Страницы:   1 2

Кот ©   (2005-07-26 07:23:00) 

Есть видео файл, к которому известен путь, как узнать его размер? Заранее спасибо.


Anatoly Podgoretsky   (2005-07-27 09:17:00) [1]

function FindFirst: Integer;


Anatoly Podgoretsky   (2005-07-27 09:15:00) [2]

Antonn ©   (27.07.05 08:22) [28]
Тем что требует открытия файла

Кот   (27.07.05 07:20) [27]
Думаешь там правильный код?


begin...end   (2005-07-27 08:50:00) [3]

> Lamer@fools.ua ©   (27.07.05 8:47) [30]

Точно. Вспомнил, в idGlobal она была. И в Delphi 7 есть.

P.S. Старый ник надоел? :-)


Lamer@fools.ua   (2005-07-27 08:47:00) [4]

> Кстати, насколько я помню, почти (или точно) такая же функция, как приведённая Вами в [11], существовала в Delphi 6 под именем FileSizeByName.

Собственно не в Delphi, а в Indy.


begin...end   (2005-07-27 08:37:00) [5]

> Antonn ©   (27.07.05 8:22) [28]

Тем, что, возможно, файл не удастся открыть даже для чтения из-за отсутствия прав.

Кстати, насколько я помню, почти (или точно) такая же функция, как приведённая Вами в [11], существовала в Delphi 6 под именем FileSizeByName. В Delphi 7 её, к счастью, убрали.


Antonn   (2005-07-27 08:22:00) [6]

Кто нибудь может растолковать, чем мой метод плох?


Кот   (2005-07-27 07:20:00) [7]

Всем спасибо пример [17] от Sectey работает .


Anatoly Podgoretsky   (2005-07-26 15:35:00) [8]

begin...end ©   (26.07.05 15:27) [25]
И упомянутый TFileStream то же.
Это он чего то вякнул не подумав.
К тому же проблема не гигабайтами


begin...end   (2005-07-26 15:27:00) [9]

> Antonn ©   (26.07.05 15:16) [23]

GetFileSize тоже нормально работает с файлами, размер которых превышает 4 ГБ.


Anatoly Podgoretsky   (2005-07-26 15:18:00) [10]

begin...end ©   (26.07.05 13:39) [22]
И правда о чем он это?


Antonn   (2005-07-26 15:16:00) [11]


>Все примеры, кроме [1] не будут отрабатывать на очень
> > длинных файлах, так как возвращают только 4 байта.

до 4 Гб?


begin...end   (2005-07-26 13:39:00) [12]

> ANB ©   (26.07.05 9:51) [12]

> Все примеры, кроме [1] не будут отрабатывать на очень
> длинных файлах, так как возвращают только 4 байта.

Вы о чём?


Anatoly Podgoretsky   (2005-07-26 13:26:00) [13]

И чешет в затылке.


Fay   (2005-07-26 10:41:00) [14]

2 Anatoly Podgoretsky ©   (26.07.05 10:28) [19]
Анатолий, это борьба с ветряными мельницами. Пусть считают проценты 8)


Anatoly Podgoretsky   (2005-07-26 10:28:00) [15]

Ни один пример не будет работать нормально, кроме примеров с FindFirst, почему советую подумать на досуге. Все оговорки насчет процентов это самоуспокоение


evvcom   (2005-07-26 10:15:00) [16]


> Dust ©   (26.07.05 10:01) [16]

Сейчас проснется модератор, и ты получишь RO. И будешь как та собака, которая все понимает, только сказать ничего не может. :)


Sectey   (2005-07-26 10:08:00) [17]

Ребята зачем открывать файл что бы узнать его размер?
procedure TForm1.btn1Click(Sender: TObject);
var
 sr: TSearchRec;
begin
 if FindFirst('Твой файл', faAnyFile, sr) = 0 then
 begin
   ShowMessage(IntToStr(sr.Size));
 end;
 FindClose(sr);
end;


Dust   (2005-07-26 10:01:00) [18]

Удалено модератором
Примечание: МАТ


ANB   (2005-07-26 09:56:00) [19]


> Mamed   (26.07.05 09:53) [14]
- сколько лишних телодвижений.


Mamed   (2005-07-26 09:53:00) [20]

var
  f: file of Byte;
  size : Longint;
  S: string;
  y: Integer;
begin
  if OpenDialog1.Execute then
  begin
    AssignFile(f, OpenDialog1.FileName);
    Reset(f);
    size := FileSize(f);
    S := 'File size in bytes: ' + IntToStr(size);
    y := 10;
    Canvas.TextOut(5, y, S);
    y := y + Canvas.TextHeight(S) + 5;
    S := 'Seeking halfway into file...';
    Canvas.TextOut(5, y, S);

    y := y + Canvas.TextHeight(S) + 5;
    Seek(f,size div 2);
    S := 'Position is now ' + IntToStr(FilePos(f));
    Canvas.TextOut(5, y, S);
    CloseFile(f);
  end;


Страницы:   1 2

Наверх

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