Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Узнать размер файла, если известен путь к нему [D7, WinXP]


_Sergey_ ©   (2005-11-18 17:37:00) 

Как можно узнать размер файла, если известен путь к нему, желательно без открытия и без использования FindFirst, findNext и т.д.


Fay   (2005-11-21 01:54:00) [1]

2 homm ©   (20.11.05 21:08) [19]
GetCompressedFileSize
(NT)


homm   (2005-11-20 21:08:00) [2]


> "Округлить" в большую сторону до кратности объему кластера.

Файл может быть еще сжат.


Defunct   (2005-11-20 19:58:00) [3]

_Sergey_   (20.11.05 14:50) [14]

"Округлить" в большую сторону до кратности объему кластера.


Джо   (2005-11-20 19:21:00) [4]


>  [16] Плохиш ©   (20.11.05 19:00)
> Хм, за кого нас тут держат? :-|


Это было ясно с самого начала.


Плохиш   (2005-11-20 19:00:00) [5]


> _Sergey_   (18.11.05 17:37)  
> Как можно узнать размер файла, если известен путь к нему,
>  желательно без открытия и без использования FindFirst,
> findNext и т.д.


> _Sergey_   (20.11.05 14:50) [14]
> Все сделал через FindFirst

Хм, за кого нас тут держат? :-|


Anatoly Podgoretsky   (2005-11-20 16:19:00) [6]

GetDiskFreeSpace


_Sergey_   (2005-11-20 14:50:00) [7]

Все сделал через FindFirst, просто передал в качестве пути имя файла, и все заработало. Но определяется фактический размер в байтах, а нужен размер с учетом кластера. Как можно узнать размер кластера?


Anatoly Podgoretsky   (2005-11-20 11:52:00) [8]

Fay ©   (20.11.05 04:19) [12]
Так получают размер все эти функции, прямо или косвенно, остальные используют функции FindFirst, то есть чтение каталога, при том не важно с открытием файла или нет. Просто других логических путей нет.
Автор отказался от обеих методов.


Fay   (2005-11-20 04:19:00) [9]

2 Anatoly Podgoretsky ©   (19.11.05 17:21) [11]
>> открытие файла и перемещение в конец
Зачем?!


Anatoly Podgoretsky   (2005-11-19 17:21:00) [10]

Romkin ©   (19.11.05 16:32) [7]
Например отсутствие прав на открытие. А сделать можно, но он категорически отказался. Для получения размера сущестуют только два базовых способа - или чтение информации из каталога или открытие файла и перемещение в конец. Все функции крутятся вокруг этих методов. От обоих он отказался и этим загнал себя в угол.


_Sergey_   (2005-11-19 16:52:00) [11]

А как размер файла узнает винда, если вызвать свойства файла? Вот мне что-то типа того и надо, причем желательно не фактический размер файла, а то, сколько он занимает на диске (с учетом размера кластера и т.д.)
З.Ы. А если выделить папку с несколькими тысячами файлов и нажать свойства, то разве все файлы открываются и посредством этого узнается размер? Или я что-то не так понял?


TStas   (2005-11-19 16:50:00) [12]

Я через FindFirst... узнавал размер экзешника. Еще TFileStream есть


Джо   (2005-11-19 16:34:00) [13]


>  [7] Romkin ©   (19.11.05 16:32)

Ну, например размер pagefile можно получить не открывая самого файла. Из структуры WIN32_FIND_DATA посредством FindFirst/FindNext.


Romkin   (2005-11-19 16:32:00) [14]

Anatoly Podgoretsky ©   (19.11.05 16:17) По-моему, невозможно только когда файла нет или он эксклюзивно захвачен чем-нить. Причем я не уверен, что в этих случаях можно сделать хоть что-то


Anatoly Podgoretsky   (2005-11-19 16:17:00) [15]

Можно узнать, но он отказался сразу.
А открытие не всегда возможно.


gdaujk   (2005-11-19 14:57:00) [16]

Точно, надо открывать :-) Поспешишь - людей насмешишь... А в чём собственно проблема? В открытии?

PS: А как можно узнать, сколько денег в кошельке, желательно не открывая его?


begin...end   (2005-11-19 08:50:00) [17]

> gdaujk ©   (19.11.05 04:10) [3]

Тут потребуется вначале открыть файл. Автор сразу сказал, что ему это не подходит.


gdaujk   (2005-11-19 04:10:00) [18]

Почему бы не WinAPI GetFileSize?


Romkin   (2005-11-18 17:54:00) [19]

GetFileAttributesEx


Leonid Troyanovsky   (2005-11-18 17:46:00) [20]


> _Sergey_   (18.11.05 17:37)  
> Как можно узнать размер файла, если известен путь к нему,
>  желательно без открытия и без использования FindFirst,
> findNext и т.д.


Сие (желательно) невозможно.
А чем оно огорчает?

--
Regards, LVT.


Наверх

Титульная страница Поиск, карта сайта Написать письмо