У меня есть существующий файл на компьютере, и мне было интересно узнать, когда это было сделано, размер файла и другие свойства файла.
Я попытался использовать в ifstream Но есть информация у меня есть в файле
(я использую Visual C++ 6.0, не может с помощью Boost)Как получить информацию о файле?
ответ
Посмотрите на функции GetFileAttributesEx
.
#include <windows.h>
WIN32_FILE_ATTRIBUTE_DATA fInfo;
GetFileAttributesEx("test.dat", GetFileExInfoStandard, &fInfo);
WIN32_FILE_ATTRIBUTE_DATA
содержит много «общих» информаций файлов (размер, создание/редактирование времени, атрибуты).
Update: Я только что видел, что вы используете Visual C++ 6. Поскольку GetFileAttributesEx
поддерживается начиная с Windows XP он может быть недоступен в заголовках API WIN ... Вы можете использовать функцию с помощью динамического связывания. Следующий код делает то же самое, что и фрагмент из выше:
/* clone definition of WIN32_FILE_ATTRIBUTE_DATA from WINAPI header */
typedef struct file_info_struct
{
DWORD dwFileAttributes;
FILETIME ftCreationTime;
FILETIME ftLastAccessTime;
FILETIME ftLastWriteTime;
DWORD nFileSizeHigh;
DWORD nFileSizeLow;
} FILE_INFO;
/* function pointer to GetFileAttributesEx */
typedef BOOL (WINAPI *GET_FILE_ATTRIBUTES_EX)(LPCWSTR lpFileName, int fInfoLevelId, LPVOID lpFileInformation);
HMODULE hLib;
GET_FILE_ATTRIBUTES_EX func;
FILE_INFO fInfo;
hLib = LoadLibrary("Kernel32.dll");
if (hLib != NULL)
{
func = (GET_FILE_ATTRIBUTES_EX)GetProcAddress(hLib, "GetFileAttributesExW");
if (func != NULL)
{
func("test.dat", 0, &fInfo);
}
FreeLibrary(hLib);
/*
** Don't call func after FreeLibrary !!!
** It should be ok since kernel32.dll is loaded by your application anyway but if
** you get a function pointer from a dll only loaded by LoadLibrary the function
** pointer is invalid once the library if freed.
*/
}
Большое спасибо! Как просмотреть дату создания файла? fInfo.ftCreationTime - FILETIME (это число 100-наносекундных интервалов с 1 января), так как я могу просмотреть дату? (dd/mm/yyyy) –
@MikeBrown Посмотрите на функцию 'FileTimeToSystemTime'. –
Вы смешиваете кодировки символов. Если вы используете 'LPCTSTR' в объявлении прототипа функции, вы не можете использовать' 'GetFileAttributesExA'' для поиска указателя функции. Либо используйте «LPCSTR» в своем объявлении (с «GetFileAttributesExA»), либо используйте версию Unicode, указав «LPCWSTR» в своем прототипе и имя функции «GetFileAttributesExW». Последнее настоятельно рекомендуется. – IInspectable
размера и создания данных (и больше) доступны через FindFirstFile
.
- 1. Получить информацию о файле
- 2. GTK + получить информацию о файле
- 3. Получить информацию о файле inode
- 4. Как получить информацию о файле/поисковые каталоги
- 5. Как получить информацию о файле в Windows
- 6. Получить информацию о файле форма каталога Laravel
- 7. AppleScript - получить информацию о файле .eml
- 8. Получить информацию о файле в медиатеке Wordpress
- 9. Получить информацию о файле в переменных?
- 10. Получить информацию о файле через api
- 11. Dropbox java api получить информацию о файле
- 12. Получить информацию о файле из рекурсивных папок
- 13. получить информацию о AS-файле после перезаписи
- 14. Получить информацию о файле из System.Web.HttpInputStream
- 15. Получить информацию о файле в python
- 16. Как Xcode хранит «информацию о проекте» и «информацию о файле»
- 17. Как получить информацию о FTPFile
- 18. Собирать информацию о файле изображения
- 19. Как загрузить информацию о файле в Zend1
- 20. Обновить информацию о двоичном файле
- 21. Как получить информацию о файле cookie и GET в ActionScript?
- 22. Как получить информацию о текущем буфере/файле в emacs?
- 23. Как получить информацию о файле .jar в python-magic
- 24. Как получить информацию о файле в каталоге C#
- 25. Создание декораторов, как получить информацию о файле в плагине eclipse?
- 26. Как получить информацию о звуковом файле (альбом, художник, изображение, ...) Android?
- 27. Как получить информацию о файле, которая выбрана в спискеBox?
- 28. Как получить информацию о файле + тело с файлом_get_contents ('php: // input')?
- 29. Как получить информацию о волновом файле в C#?
- 30. Как получить подробную информацию о файле под окнами?
Серьезно VC6? Как в пятнадцать лет? Вероятно, вы хотите либо [stat] (http://msdn.microsoft.com/en-us/library/14h5k7ff.aspx) использовать POSIX-подобный API, либо [GetFileAttributes] (http://msdn.microsoft.com/) en-gb/library/windows/desktop/aa364946.aspx) из Windows API. – Rup
MFC (с которым вы отметили этот вопрос) предлагает ['CFileFind'] (http://msdn.microsoft.com/en-us/library/3h3beets (v = vs.80) .aspx), что должно дать вы, что ищете. – WhozCraig
WhozCraig, Как я могу открыть с CFileFind, что мой файл? –