Форум программистов, компьютерный форум CyberForum.ru

Как пользоваться функцией GetFileSize() ? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 41, средняя оценка - 4.68
MaD1
Сообщений: n/a
05.09.2010, 18:52     Как пользоваться функцией GetFileSize() ? #1
Привет. В builder'e выполняю следующий код:

char str[100] = '';
unsigned long FileSize = 0;

GetFileSize('C:\file.exe', &FileSize);
ltoa(FileSize, str, 10);
MessageBox(0, str, '', 0);

И размер всегда 0. Подскажите, что не так?
И еще: первый параметр этой функции такой: void * hFile, почему не char?
Или вместо пути к файлу нужно ставить что-то типа HANDLE или hInstance?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.09.2010, 18:52     Как пользоваться функцией GetFileSize() ?
Посмотрите здесь:

C++ Как пользоваться MSDN
C++ Помощь функциями GetFileAttributes и GetFileSize.
C++ Как правильно пользоваться функцией strtok
C++ GetFileSize
Подскажите хороший компилятор, как его установить, как им пользоваться? C++
Написать аналог процедуры Insert. Процедурой Delete и функцией Copy не пользоваться C++
Как пользоваться функцией gettime() C++
Как пользоваться функцией rand()? C++
как правильно пользоваться C++
Как пользоваться md5 ? C++
Как пользоваться структурами? C++
C++ Как пользоваться функцией fgetpos, fsetpos?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
GreenEx
Сообщений: n/a
05.09.2010, 20:38     Как пользоваться функцией GetFileSize() ? #2
Смотри MSDN:

DWORD GetFileSize(
HANDLE hFile, // handle to file
LPDWORD lpFileSizeHigh // high-order word of file size
);
palva
 Аватар для palva
2413 / 1635 / 204
Регистрация: 08.06.2007
Сообщений: 6,467
Записей в блоге: 4
06.09.2010, 12:56     Как пользоваться функцией GetFileSize() ? #3
Ну то есть, вы пытаетесь получить старшую часть длины файла, которая возвращается для чрезвычайно больших файлов (10 в степени 10 байтов). А вам нужна младшая часть, которая равняется возвращаемому значению. Кроме того, файл должен быть открыт, хотя бы для чтения, и в функцию надо передавать HANDLE файла. Пример:
Код
#include <stdlib.h>
#include <windows.h>
void main(int npar, char *par[]) {
  char str[100] = '';
  unsigned long FileSize = 0;
  HANDLE hF = CreateFile(
    'C:\Perl\bin\perl56.dll', // file name
    GENERIC_READ,                // access mode
    0,                           // share mode
    NULL,                        // SD
    OPEN_EXISTING,               // how to create
    0,                           // file attributes
    NULL                         // handle to template file
  );
  FileSize = GetFileSize(hF, NULL);
  CloseHandle(hF);
  ltoa(FileSize, str, 10);
  MessageBox(0, str, '', 0);
}
Yandex
Объявления
06.09.2010, 12:56     Как пользоваться функцией GetFileSize() ?
Ответ Создать тему
Опции темы

Текущее время: 23:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru