Как получить размер файла с гибкого диска?
Заранее спасибо.
(Смотря как(чем,где)ты хочешь это получить?)
Помогите кто-нибудь!Пожалуйста начинающему программисту. :) Как получить размер файла с гибкого диска???
Заранее спасибо.
Я,наверно, не очень точно изложила ситуацию.
У меня задание: Написать программу, которая бы выдавала список файлов корневого каталога на дискете (это не трудно) и при нажатии клавиши U сортировала бы этот список по размеру.
Как здесь получить эти размеры?
Я,наверно, не очень точно изложила ситуацию.
У меня задание: Написать программу, которая бы выдавала список файлов корневого каталога на дискете (это не трудно) и при нажатии клавиши U сортировала бы этот список по размеру.
Как здесь получить эти размеры?
Структура элемента каталога FAT:
dir_element = record
file_name : array [1..8] of char;
file_ext : array [1..3] of char;
attribute : byte;
file_reserve : array [1..10] of byte;
last_acess_time : word;
last_acess_date : word;
file_start_clust : word;
file_size : longint;
end;
Начало корневого каталога можно вычислить из данных бут-сектора.
Общая часть заголовка файловой системы FAT
Эта часть общая для всех файловых систем семейства FAT (FAT12, FAT16 и FAT32):
Смещение Название Размер Описание
0 BS_jmpBoot 3 Команда перехода на загрузчик ОС
3 BS_OEMName 8 Название и версия Windows
11 BPB_BytsPerSec 2 Количество байтов в секторе (всегда 512)
13 BPB_SecPerClus 1 Секторов на кластер всегда кратно степени двух
14 BPB_RsvdSecCnt 2 Количество зарезервированных секторов перед первой FAT
16 BPB_NumFATs 1 Количество таблиц FAT (всегда 2)
17 BPB_RootEntCnt 2 Количество элементов в корневом каталоге (максимальный предел)
19 BPB_TotSec16 2 Общее число секторов (0 - если размер диска больше 32 Мб)
21 BPB_Media 1 Тип устройства: F0 - гибкий диск, F8 - жесткий диск с любой емкостью
22 BPB_FATsz16 2 Количество секторов на элемент таблицы FAT
24 BPB_SecPerTrk 2 Количество секторов на дорожку
26 BPB_NumHeads 2 Число головок
28 BPB_HiddSec 4 Количество скрытых секторов
32 BPB_TotSec32 4 Общее число секторов (0 - если размер диска меньше 32 Мб)
Расширенный заголовок:
FAT12 и FAT16 имеют одинаковый формат заголовка.
Смещение Название Размер Описание
36 BS_DrvNum 1 Номер диска
37 BS_NtRsvd 1 Зарезервировано для Windows NT
38 BS_BootSig 1 Расширенная сигнатура (если 29h, то следующие поля актуальны)
39 BS_VolID 4 Серийный номер тома
43 BS_VolLab 11 Метка тома
54 BS_FilSysSize 8 Тип файловой системы (12- или 16-разрядная)