Форум: "Основная";
Текущий архив: 2003.07.24;
Скачать: [xml.tar.bz2];
ВнизРазмер файла в байтах без FileSize Найти похожие ветки
← →
stimm (2003-07-13 21:00) [0]Как определиь размер файла в байтах без FileSize (ф-ия или процедура есть наверное - КАКАЯ!!!)
← →
Palladin (2003-07-13 21:05) [1]Удалено модератором
Примечание: не нарывайся
← →
Anatoly Podgoretsky (2003-07-13 21:16) [2]FindFirst
← →
Song (2003-07-13 21:24) [3]The GetFileSize function retrieves the size, in bytes, of the specified file.
DWORD GetFileSize(
HANDLE hFile, // handle of file to get size of
LPDWORD lpFileSizeHigh // address of high-order word for file size
);
Parameters
hFile
Specifies an open handle of the file whose size is being returned. The handle must have been created with either GENERIC_READ or GENERIC_WRITE access to the file.
lpFileSizeHigh
Points to the variable where the high-order word of the file size is returned. This parameter can be NULL if the application does not require the high-order word.
← →
Palladin (2003-07-13 21:33) [4]
> Примечание: не нарывайся
и не думал...
FileSize - использует тот же самый GetFileSize.
← →
Palladin (2003-07-13 21:37) [5]автору видимо надо что то типа
function GetFileSizeBezVsyakoyChepuhy(p_strFileName:string):integer;
var
f:file;
begin
assignfile(f,p_strFileName);reset(f,1);
result:=FileSize(f);
closefile(f);
end;
← →
Ihor Osov'yak (2003-07-13 21:51) [6]Если аксакал говорит - его слушать надо - Anatoly Podgoretsky © (13.07.03 21:16)
И посмотреть хелп , примерно по такому сценарию
FindFirst,TSearchRec
и воззоеть:
type
TSearchRec = record
Time: Integer;
Size: Integer;
Attr: Integer;
Name: TFileName;
ExcludeAttr: Integer;
FindHandle: THandle;
FindData: TWin32FindData;
end;
Зы. Этот способ не пребует открытия файла. А иногда это может быть определяющим..
← →
Anatoly Podgoretsky (2003-07-13 23:05) [7]Именно из за этого критерия и предлагаю, в нагрузку получены будут и другие данные, кроме размера.
← →
Song (2003-07-13 23:36) [8]2Ihor Osov"yak © (13.07.03 21:51)
Anatoly Podgoretsky © (13.07.03 23:05)
Palladin © (13.07.03 21:33)
А как насчёт если файл будет 38 мегов? :)
← →
Anatoly Podgoretsky (2003-07-13 23:54) [9]Так не попугаев же.
← →
Ihor Osov'yak (2003-07-14 00:18) [10]2 Song © (13.07.03 23:36)
Мне нравится ваш ход мыслей, но проблемы возникнут не для 38 мег, а где то в районе 2 гиг..
Если будем иметь дело с таким чудом, то следует обратить взор на
FindFirstFile и на структуру
typedef struct _WIN32_FIND_DATA {
DWORD dwFileAttributes;
FILETIME ftCreationTime;
FILETIME ftLastAccessTime;
FILETIME ftLastWriteTime;
DWORD nFileSizeHigh;
DWORD nFileSizeLow; DWORD dwReserved0;
DWORD dwReserved1;
TCHAR cFileName[ MAX_PATH ];
TCHAR cAlternateFileName[ 14 ];
} WIN32_FIND_DATA, *PWIN32_FIND_DATA;
Можна подумать, что сие обстоятельство вам не известно..
← →
Ihor Osov'yak (2003-07-14 00:24) [11]Более корректно так - все же юзаем FindFirst и
TSearchRec = record
Time: Integer;
Size: Integer;
Attr: Integer;
Name: TFileName;
ExcludeAttr: Integer;
FindHandle: THandle;
FindData: TWin32FindData;
end;
TWin32FindData = _WIN32_FIND_DATAA
_WIN32_FIND_DATAA = record
dwFileAttributes: DWORD;
ftCreationTime: TFileTime;
ftLastAccessTime: TFileTime;
ftLastWriteTime: TFileTime;
nFileSizeHigh: DWORD;
nFileSizeLow: DWORD;
dwReserved0: DWORD;
dwReserved1: DWORD;
cFileName: array[0..MAX_PATH - 1] of AnsiChar;
cAlternateFileName: array[0..13] of AnsiChar;
end;
← →
Song (2003-07-14 10:27) [12]2Ihor Osov"yak © (14.07.03 00:24)
Нет, конечно известно, просто да, я забыл про расширенную TWin32FindData :)
Когда мне нужно было сделать прогресс для обработки большого файла я столкнулся с этой проблемой и определил просто через АПИ.
>> Мне нравится ваш ход мыслей, но проблемы возникнут не для 38 мег, а где то в районе 2 гиг..
Я хотел сказать, что у TSearchRec.Size тип Integer, а поэтому проблема возникнет намного раньше.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.07.24;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.008 c