![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Узнать размер файла, если известен путь к нему [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.