|
|
|
| При определении размера файла, необходимо его открыть при помощи функции CreateFile(), а потом передать полученный дискриптор в функцию GetFileSize(). Эта функция возвращает количество байт в файле. Приведенный ниже пример, предполагает, что мы имеем дело с файлом, размер которого ниже 4Гб, в противном случае пришлось бы задействовать второй параметра функции GetFileSize() (который мы тут малодушно приравниваем NULL).
// Главный заголовочный файл
#include <Windows.h>
// Набор макросов
#include <WindowsX.h>
// Для printf
#include <stdio.h>
// Главная входная точка Windows-программ
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpcmdline,
int ncmdshow)
{
// Размер файла
DWORD dwSize = 0;
char chSize[256];
// Файл
LPCTSTR lpszSystemInfo = "D:\\cover.jpg";
// Открываем файл
HANDLE hFile = CreateFile(lpszSystemInfo,
GENERIC_READ,
0,
NULL,
OPEN_EXISTING,
FILE_FLAG_SEQUENTIAL_SCAN,
NULL);
if(hFile == INVALID_HANDLE_VALUE)
{
MessageBox(NULL, "Не удалось открыть файл",
"Ошибка",
MB_OK | MB_ICONEXCLAMATION);
}
// Получаем размер файла
dwSize = GetFileSize(hFile, NULL);
if (dwSize == INVALID_FILE_SIZE)
{
MessageBox(NULL, "Не удалось определить размер файла",
"Ошибка",
MB_OK | MB_ICONEXCLAMATION);
}
// Закрываем файл
CloseHandle(hFile);
// Преобразуем число в строку, чтобы вывести в модальном окне
sprintf_s(chSize, 256, "%d", dwSize);
// Выводим резальтат
MessageBox(NULL, chSize,
"Размер файла",
MB_OK | MB_ICONEXCLAMATION);
// Выход из программы
return(0);
} |
| |
|
|
|
|
|
|
|
для: cheops
(26.11.2011 в 22:24)
| | Консольный вариант этой же самой программы может выглядеть следующим образом
#include <Windows.h>
#include <WindowsX.h>
#include <stdio.h>
#include <iostream>
using namespace std;
int main ()
{
// Размер файла
DWORD dwSize = 0;
// Файл
LPCTSTR lpszSystemInfo = "D:\\cover.jpg";
// Открываем файл
HANDLE hFile = CreateFile(lpszSystemInfo,
GENERIC_READ,
0,
NULL,
OPEN_EXISTING,
FILE_FLAG_SEQUENTIAL_SCAN,
NULL);
if(hFile == INVALID_HANDLE_VALUE)
cerr << "Не удалось открыть файл" << endl;
// Получаем размер файла
dwSize = GetFileSize(hFile, NULL);
if (dwSize == INVALID_FILE_SIZE)
cerr << "Не удалось определить размер файла" << endl;
// Закрываем файл
CloseHandle(hFile);
// Выводим результат
cout << "Размер файла " << lpszSystemInfo << " = " << dwSize << endl;
// Остановка перед закрытием окна
system("PAUSE");
return 0;
} |
| |
|
|
|