Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Размер файла

328
14 августа 2003 года
Felix
257 / / 20.07.2000
как узнать размер файла в FileListBox
250
14 августа 2003 года
Joker
1.4K / / 20.02.2000
Цитата:
Originally posted by Felix
как узнать размер файла в FileListBox


в каком еще фаиллистбокс это ты про что ?

328
14 августа 2003 года
Felix
257 / / 20.07.2000
Цитата:
Originally posted by Joker

в каком еще фаиллистбокс это ты про что ?



прошу прощения... тема относиться к си билдеру.. я не знаю как я так промахнулся...

310
14 августа 2003 года
fellow
853 / / 17.03.2003
Цитата:
Originally posted by Felix


прошу прощения... тема относиться к си билдеру.. я не знаю как я так промахнулся...


Берёте полное имя файла и его атрибуты из списка, и передаёте сишной функции findfirst вместе с указателем на ffblk. В этом то ffblk размер и получите.

328
16 августа 2003 года
Felix
257 / / 20.07.2000
Цитата:
Originally posted by fellow

Берёте полное имя файла и его атрибуты из списка, и передаёте сишной функции findfirst вместе с указателем на ffblk. В этом то ffblk размер и получите.


void __fastcall TForm1::Button3Click(TObject *Sender)
{
struct ffblk ffblk;
findFirst(AnsiString(FileListBox1->FileName),&ffblk,0);
Caption=ffblk.ff_fsize;

}


что то работать не хочет...

310
16 августа 2003 года
fellow
853 / / 17.03.2003
Цитата:
Originally posted by Felix

void __fastcall TForm1::Button3Click(TObject *Sender)
{
struct ffblk ffblk;
findFirst(AnsiString(FileListBox1->FileName),&ffblk,0);
Caption=ffblk.ff_fsize;

}


что то работать не хочет...


И я бы не захотел, да и Вы бы тоже, потому как во-первых, нельзя объявлять идентификатор с тем же имененем, что и его тип; во-вторых, не тот первый аргумент для findFirst; в-третьих, findfirst пишется всё маленькими буквами. Mea culpa, надо было сразу указать, что findfirst С-шный из <dos.h>:

 
Код:
#include <dir.h>
int findfirst(const char *pathname, struct ffblk *ffblk, int attrib);

Посему, надо так:
 
Код:
struct ffblk blk;
findfirst(FileListBox1->FileName.c_str(),&blk,0);
Caption=blk.ff_fsize;

И ещё: то, что третий параметр нулевой - скорее всего не то, что нужно именно Вам. Поставьте там атрибут архивный или комбинацию из других атрибутов.
К тому, что в справке написано, иногда стоит относиться критически.
310
16 августа 2003 года
fellow
853 / / 17.03.2003
Если есть желание, можно воспользоваться FindFirst родной билдеровской из VCL.
429
18 августа 2003 года
Slon
78 / / 20.01.2000
Через WINAPI:
//---
HANDLE hFile = CreateFile(FileListBox1->FileName.c_str(), 0, FILE_SHARE_READ, 0, OPEN_EXISTING, 0, 0);
int Length = GetFileSize(hFile, 0);
CloseHandle(hFile);
//---
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог