Форум: "WinAPI";
Текущий архив: 2012.02.12;
Скачать: [xml.tar.bz2];
ВнизУзнать сколько места на диске занимает файл Найти похожие ветки
← →
Apachi (2009-10-01 10:05) [0]Уважаемые мастера
Подскажите пожалуста как узнать по имени файла, сколько он занимает места на диске??? Как правило это значение немного превышает размер файла.
Помогите пожалуста!
← →
QAZ (2009-10-01 10:39) [1]if рамер файла mod размер кластера >0 then
(рамер файла div размер кластера +1)*размер кластера else
(рамер файла div размер кластера)*размер кластера;
както так
← →
Apachi (2009-10-01 10:43) [2]осталось только узнать определение размера кластера :)
ща покапаем
спасибо
← →
brother © (2009-10-01 11:08) [3]я боюсь огорчить...) не все так просто: а если файл фрагментирован?
← →
DrPass © (2009-10-01 11:13) [4]
> brother © (01.10.09 11:08) [3]
> я боюсь огорчить...) не все так просто: а если файл фрагментирован?
>
А разве в этом случае количество недозаполненных кластеров становится больше одного?
← →
QAZ (2009-10-01 11:50) [5]
> я боюсь огорчить
бойся
> осталось только узнать определение размера кластера
функция GetDiskFreeSpace
и знание того что 512байт в секторе
← →
QAZ (2009-10-01 12:00) [6]точней в GetDiskFreeSpace можно и размер сектора узнать если чо...
← →
QAZ (2009-10-01 12:18) [7]ищо нюанс
чтоб узнать размер сжатого в NTFS файла надо юзать соотв. функции
так как обычные будут выдавать разжатый размер
← →
QAZ (2009-10-01 12:21) [8]а по поводу фрагментации и прочего бреда не парься...
минимальная неделимая еденица хранения информации:
в файловой системе - кластер,
для "голого" диска - сектор
← →
Riply © (2009-10-02 06:04) [9]Для получения "выделенного" под файл места (без учета потоков),
можно попробовать использовать ZwQueryInformationFile(..., FileStandardInformation)
В структуре FILE_STANDARD_INFORMATION обратить внимание на поле AllocationSize.
Дело в том, что для файла, например размером 4КБ,
может быть выделено как 2КБ (компрессированный), так и 57564 КБ
Вообщем, как выпендриваемся при его создании, такой результат и получаем :)
← →
1024байт (2009-10-02 22:03) [10]
> и знание того что 512байт в секторе
что за знание?
← →
Германн © (2009-10-03 02:37) [11]
> Riply © (02.10.09 06:04) [9]
О! Саша нашла время, свободное от модерирования форума "исходников", и вернулась к нам. Это - плюс! И нам и ей!
Это что-то среднее между Розычем и Ромкиным.
:)
← →
Riply © (2009-10-03 03:15) [12]> [10] 1024байт (02.10.09 22:03)
> что за знание?
Угу. В секторе может быть и 4096 КВ. Видела своими глазами :)
> [11] Германн © (03.10.09 02:37)
> О! Саша нашла время, свободное от модерирования форума "исходников", и вернулась к нам.
Дык я и не уходила, ибо от Мастеров не уйдешь :)
← →
QAZ (2009-10-03 09:57) [13]Размер сектора традиционноравен 512 байт.В 2006 IDEMA объявила о переходе на размер сектора 4096 байт который планируется завершить к 2010
по поводу определения размера сектора написано постом ниже
← →
1024байт (2009-10-03 11:14) [14]так чего же стОит твоё "знание того что 512байт в секторе", если всем заинтересованным известно, что это не так?
в общем поменьше самоуверенности
← →
Denis__ © (2009-10-03 22:27) [15]
> Угу. В секторе может быть и 4096 КВ.
наверное все же байт?=)
← →
Riply © (2009-10-03 23:43) [16]> [15] Denis__ © (03.10.09 22:27)
> наверное все же байт?=)
Угу. Опечатка. Sorry.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2012.02.12;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.008 c