Скачиваний:
28
Добавлен:
01.05.2014
Размер:
81.41 Кб
Скачать

Лабораторная работа 4. Операции над характеристиками файлов

Цель работы. Разработать приложение для работы с характеристиками файлов

    1. Возможности программы:

- открытие произвольного файла по его

  • анализ и изменение атрибутов файлов

  • анализ и взаимные преобразования временных характеристик файлов в различных форматах

    1. Используемые функции Win32 API:

Таблица вариантов

Вар.01

Вар.02

Вар.03

Вар.04

Вар.05

Вар.06

Вар.07

Вар.08

Вар.09

Вар.10

CreateFile

+

+

+

+

+

+

+

+

+

+

GetFileInformationByHandle

+

+

+

+

+

+

+

+

+

+

GetFileType

+

GetFileSize

+

+

+

GetFileAttributes

+

+

+

+

SetFileAttributes

+

+

+

+

GetSystemTime

+

+

+

+

+

+

GetFileTime

+

+

+

+

+

+

+

SetFileTime

+

+

+

+

SystemTimeToFileTime

+

+

+

FileTimeToSystemTime

+

+

+

+

+

+

CompareFileTime

+

+

+

+

+

+

+

+

FileTimeToDosDateTime

+

+

+

+

+

+

+

+

+

DosDateTimeToFileTime

+

+

+

+

+

Вар.11

Вар.12

Вар.13

Вар.14

Вар.15

Вар.16

Вар.17

Вар.18

Вар.19

Вар.20

CreateFile

+

+

+

+

+

+

+

+

+

+

GetFileInformationByHandle

+

+

+

+

+

+

+

+

+

+

GetFileType

+

+

+

+

+

+

GetFileSize

+

+

GetFileAttributes

+

+

+

+

+

SetFileAttributes

+

+

+

+

+

GetSystemTime

+

+

+

+

+

+

+

GetFileTime

+

+

+

+

+

SetFileTime

+

+

+

+

+

SystemTimeToFileTime

+

+

FileTimeToSystemTime

+

+

+

+

+

+

CompareFileTime

+

+

FileTimeToDosDateTime

+

+

+

+

+

+

+

DosDateTimeToFileTime

+

+

+

+

Приложение 4. Функции и структуры для операций над характеристиками файлов

HANDLE CreateFile( // Создание файла [out]

LPCTSTR lpFileName, // file name – имя файла [in]

DWORD dwDesiredAccess, // access mode – права доступа [in]

DWORD dwShareMode, // share mode - режим разделения файла [in]

LPSECURITY_ATTRIBUTES lpSecurityAttributes, // SD – атрибуты ьезопасности [in]

DWORD dwCreationDisposition, // how to create – коллизии с существующим файлом [in]

DWORD dwFlagsAndAttributes, // file attributes – флаги и атрибуты файла [in]

HANDLE hTemplateFile); // handle to template file – хэндл файла-образца [in]

BOOL GetFileInformationByHandle( // Получение информации о файле по хэндлу

HANDLE hFile, // handle to file - хэндл файла [in]

LPBY_HANDLE_FILE_INFORMATION lpFileInformation); // buffer – информация о файле [out]

DWORD GetFileType( // Определение типа файла [out]

HANDLE hFile); // handle to file – хэндл файла [in]

DWORD GetFileSize( // Определение размера файла [out]

HANDLE hFile, // handle to file – хэндл файла [in]

LPDWORD lpFileSizeHigh); // high-order word of file size – старшая часть слова размера файла [out]

BOOL GetFileSizeEx( // Определение размера файла

HANDLE hFile, // handle to file – хэндл файла [in]

PLARGE_INTEGER lpFileSize); // file size – размер файла [out]

DWORD GetFileAttributes( // Получение атрибутов файла [out]

LPCTSTR lpFileName); // name of file or directory – имя файла или каталога [in]

BOOL GetFileAttributesEx( // Получение атрибутов файла

LPCTSTR lpFileName, // file or directory name – имя файла или каталога [in]

GET_FILEEX_INFO_LEVELS fInfoLevelId, // attribute – объем информации [in]

LPVOID lpFileInformation ); // attribute information – информация об атрибутах [out]

BOOL SetFileAttributes( // Установка атрибутов файла

LPCTSTR lpFileName, // file name – имя файла [in]

DWORD dwFileAttributes); // attributes – атрибуты файла [in]

void GetSystemTime( // Получение отметок времени в формате SystemTime

LPSYSTEMTIME lpSystemTime ); // системное время [out]

BOOL GetFileTime( // Получение отметок времени в формате FileTime

HANDLE hFile, // хэндл файла [in]

LPFILETIME lpCreationTime, // время создания [out]

LPFILETIME lpLastAccessTime, // время последнего доступа [out]

LPFILETIME lpLastWriteTime ); // время последней записи [out]

BOOL SetFileTime( // Установка отметок времени в формате FileTime

HANDLE hFile, // хэндл файла [in]

const FILETIME *lpCreationTime, // время создания [in]

const FILETIME *lpLastAccessTime, // время последнего доступа [in]

const FILETIME *lpLastWriteTime ); // время последней записи [in]

BOOL SystemTimeToFileTime( // Преобразование форматов времени

const SYSTEMTIME *lpSystemTime, // Отметка времени в формате SystemTime [in]

LPFILETIME lpFileTime ); // Отметка времени в формате FileTime [out]

BOOL FileTimeToSystemTime( // Преобразование форматов времени

const FILETIME *lpFileTime, // Отметка времени в формате FileTime [in]

LPSYSTEMTIME lpSystemTime ); // Отметка времени в формате SystemTime [out]

BOOL FileTimeToDosDateTime( // Преобразование форматов времени

CONST FILETIME *lpFileTime, // file time - отметка времени в формате FileTime [in]

LPWORD lpFatDate, // MS-DOS date - отметка времени в формате FatDate [out]

LPWORD lpFatTime); // MS-DOS time - отметка времени в формате FatTime [out]

BOOL DosDateTimeToFileTime( // Преобразование форматов времени

WORD wFatDate, // 16-bit MS-DOS date - отметка времени в формате FatDate [in]

WORD wFatTime, // 16-bit MS-DOS time - отметка времени в формате FatTime [in]

LPFILETIME lpFileTime); // file time - отметка времени в формате FileTime [out]

LONG CompareFileTime( // Cравнение 2-х отметок времени в формате FileTime [out]

const FILETIME *lpFileTime1, // 1-я отметка времени [in]

const FILETIME *lpFileTime2 ); // 2-я отметка времени [in]

Структуры данных

typedef struct _BY_HANDLE_FILE_INFORMATION { // Получение информации о файле по его хэндлу

DWORD dwFileAttributes; // атрибуты файла

FILETIME ftCreationTime; // время создания

FILETIME ftLastAccessTime; // время последнего доступа

FILETIME ftLastWriteTime; // время последней записи (модификации)

DWORD dwVolumeSerialNumber; // серийный номер тома

DWORD nFileSizeHigh; // размер файла (ст.р.)

DWORD nFileSizeLow; // размер файла (мл.р.)

DWORD nNumberOfLinks; // число ссылок

DWORD nFileIndexHigh; // индекс файла (ст.р.)

DWORD nFileIndexLow; // индекс файла (мл.р.)

} BY_HANDLE_FILE_INFORMATION;

typedef struct _SYSTEMTIME { // st

WORD wYear;

WORD wMonth;

WORD wDayOfWeek;

WORD wDay;

WORD wHour;

WORD wMinute;

WORD wSecond;

WORD wMilliseconds;

} SYSTEMTIME;

typedef struct _FILETIME { // ft

DWORD dwLowDateTime;

DWORD dwHighDateTime;

} FILETIME;

Соседние файлы в папке Задания на лабы для ВТ