Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-77876
Всё равно
2003-07-13 23:36
2003.07.24
Свой компонент


3-77773
mihmax
2003-06-19 16:00
2003.07.24
BDE не видит MS SQL


1-77892
lex7
2003-07-14 11:08
2003.07.24
А как зарегистрировать в компоненте новое сообщение?


1-77863
Kiril
2003-07-13 15:05
2003.07.24
[Error] Unsatisfied forward or external declaration... ?


14-78140
Milz
2003-07-09 11:12
2003.07.24
Преобразование отдела АСУ в отдельную фирму





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский