Ответить на сообщение
Вернуться к теме
Вы отвечаете на сообщение:
Автор: cheops (26.11.2011 в 22:24) При определении размера файла, необходимо его открыть при помощи функции 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); }
Ваше имя:
Пароль:
Цитировать Используйте тэги для выделения текста: Код: [code][/code] Жирный: [b][/b] Наклонный: [i][/i] URL: [url][/url]
Сообщение:
Прикрепить: