Размер файла
как узнать размер файла в FileListBox
в каком еще фаиллистбокс это ты про что ?
в каком еще фаиллистбокс это ты про что ?
прошу прощения... тема относиться к си билдеру.. я не знаю как я так промахнулся...
прошу прощения... тема относиться к си билдеру.. я не знаю как я так промахнулся...
Берёте полное имя файла и его атрибуты из списка, и передаёте сишной функции findfirst вместе с указателем на ffblk. В этом то ffblk размер и получите.
Берёте полное имя файла и его атрибуты из списка, и передаёте сишной функции findfirst вместе с указателем на ffblk. В этом то ffblk размер и получите.
void __fastcall TForm1::Button3Click(TObject *Sender)
{
struct ffblk ffblk;
findFirst(AnsiString(FileListBox1->FileName),&ffblk,0);
Caption=ffblk.ff_fsize;
}
что то работать не хочет...
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>:
int findfirst(const char *pathname, struct ffblk *ffblk, int attrib);
Посему, надо так:
findfirst(FileListBox1->FileName.c_str(),&blk,0);
Caption=blk.ff_fsize;
И ещё: то, что третий параметр нулевой - скорее всего не то, что нужно именно Вам. Поставьте там атрибут архивный или комбинацию из других атрибутов.
К тому, что в справке написано, иногда стоит относиться критически.
//---
HANDLE hFile = CreateFile(FileListBox1->FileName.c_str(), 0, FILE_SHARE_READ, 0, OPEN_EXISTING, 0, 0);
int Length = GetFileSize(hFile, 0);
CloseHandle(hFile);
//---