Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
6-1239173060
MindWork
2009-04-08 10:44
2012.02.12
IdHTTPProxyServer и tmStreaming


2-1318507172
Nucer
2011-10-13 15:59
2012.02.12
Самый быстрый способ считать маленький файл в строку


15-1319518385
OW
2011-10-25 08:53
2012.02.12
Подскажите идею, алгоритм. Управление с запаздыванием.


2-1320687478
flur
2011-11-07 20:37
2012.02.12
база paradox вставить новую запись


2-1320135606
onyx2012
2011-11-01 11:20
2012.02.12
Фильтр в Express Quantum Grid





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский