powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как узнать размер файла?
11 сообщений из 11, страница 1 из 1
Как узнать размер файла?
    #33152517
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как узнать размер файла?
    #33152528
Фотография VirusXP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
procedure TForm1.Button1Click(Sender: TObject);

var
f: file of Byte;
size: Longint;
S: string;
y: Integer;
begin
if OpenDialog1.Execute then
begin
AssignFile(f, OpenDialog1.FileName);
Reset(f);
try
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);
finally
CloseFile(f);
end;
end;
end;
...
Рейтинг: 0 / 0
Как узнать размер файла?
    #33152582
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чиссо сишно подход...
Открыть...
Сделать Seek с оффсетом нуль и флагом относительно конца файла. Возвращенное значение и есть размер. Кажись так, если ничего не попутал...

с уважением
(круглый)
...
Рейтинг: 0 / 0
Как узнать размер файла?
    #33152590
Фотография VirusXP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проще просто найти файл FindFirst и сразу увишь всё об этом файле!!!
...
Рейтинг: 0 / 0
Как узнать размер файла?
    #33152604
Фотография VirusXP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
struct TSearchRec
{
int Time;
int Size;
int Attr;
AnsiString Name;
int ExcludeAttr;
int FindHandle;
_WIN32_FIND_DATAA FindData;
} ;
...
Рейтинг: 0 / 0
Как узнать размер файла?
    #33152691
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вариант с открытием файла. Кажется был еще способ узнать
размер без использования open.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
/* CHSIZE.C: This program uses _filelength to report the size
 * of a file before and after modifying it with _chsize.
 */

#include <io.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>

void main( void )
{
   int fh, result;
   unsigned int nbytes = BUFSIZ;

   /* Open a file */
   if( (fh = _open( "data", _O_RDWR | _O_CREAT, _S_IREAD 
                   | _S_IWRITE ))  != - 1  )
   {
      printf( "File length before: %ld\n", _filelength( fh ) );
      if( ( result = _chsize( fh,  329678  ) ) ==  0  )
         printf( "Size successfully changed\n" );
      else
         printf( "Problem in changing the size\n" );
      printf( "File length after:  %ld\n", _filelength( fh ) );
      _close( fh );
   }
}
...
Рейтинг: 0 / 0
Как узнать размер файла?
    #33152899
Фотография Землекоп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>      
        int main()
                {
                struct stat st;
                if(stat("filename", &st)== 0 )
                  printf("\n file size %ld", st.st_size);
                else
                  perror("\n stat error");
                return  0 ;
                }
...
Рейтинг: 0 / 0
Как узнать размер файла?
    #33156680
ahill_odessa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
FILE *hFile = fopen("file_name","r");
if(hFile!=NULL)
{
  fseek(hFile,0L,SEEK_END);
  unsigned long file_len = ftell(hFile);
  fclose(hFile);
}


лучше от пива огромный живот чем маленький гроб от тяжёлых работ:)
...
Рейтинг: 0 / 0
Как узнать размер файла?
    #33157815
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В какой библиотеки живут константы 0L,SEEK_END?
...
Рейтинг: 0 / 0
Как узнать размер файла?
    #33157854
Forgottn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Стыдно, батенька!!! 0L - он же ноль, принадлежащий типу long или по-просту говоря NULL для 32-битных ОС...
А вот SEEK_END уже интереснее... Обитает она, как и прочие команды по работе с файлами аж в двух библиотеках <IO.H> и <STDIO.H>
...
Рейтинг: 0 / 0
Как узнать размер файла?
    #33159590
ahill_odessa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Или на WinAPI

Код: plaintext
1.
2.
3.
4.
5.
HANDLE hFile = CreateFile("YOURE_FILE.dat",FILE_ALL_ACCESS,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
	if(hFile!=INVALID_HANDLE_VALUE)
	{

		dwSizeLow = GetFileSize((HANDLE)hFile,NULL);
лучше от пива огромный живот чем маленький гроб от тяжёлых работ:)
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как узнать размер файла?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]