Рубрики
  • Нет рубрик
Социальные сети
Последние записи

Функции FindFirstFile и FindNextFile позволяют получить следующую информацию, связанную с атрибутами файла: флаги атрибутов, метки времени трех типов и размер файла. Существуют также другие аналогичные функции, одна из которых предназначена для задания атрибутов, причем эти функции могут работать непосредственно с открытыми дескрипторами файлов, не требуя просмотра каталогов или указания имен файлов. Три из этих функций, а именно, GetFileSize, GetFileSizeEx и SetEndOfFile, были описаны ранее в этой главе.

Для получения других атрибутов используются отдельные функции. Например, чтобы получить метки времени открытого файла, следует вызвать функцию GetFileTime.

BOOL GetFileTime(HANDLE hFile, LPFILETIME lpftCreation, LPFILETIME lpftLastAccess, LPFILETIME lpftLastWrite) 

Указанные здесь и в структуре WIN32_FIND_DATA метки времени представляют собой 64-битовые целые числа без знака, которые выражают величину временного интервала, вычисленную относительно условного начала отсчета (1 января 1601 года) и преобразованную во время UTC (Universal Coordinated Time — всеобщее скоординированное время)[16], в 100-наносекундных единицах времени (107 единиц в 1 секунде). Для работы с этими временными параметрами предусмотрено несколько удобных функций.

• Функция FileTimeToSystemTime (здесь не описывается; см. справочную систему Windows и программу 3.2) разбивает метки времени файла на отдельные блоки, соответствующие естественным единицам измерения, от годов до секунд и миллисекунд. Эти блоки удобно, например, использовать при выводе временных атрибутов файлов на экран или принтер.

• Функция SystemTimeToFileTime обращает этот процесс, преобразуя время, выраженное в естественных единицах, в метки времени файла.

• Функция CompareFileTime сравнивает метки времени двух файлов и в случае успешного завершения возвращает значение, зависящее от того, меньше (-1), равно (0) или больше (+1) значение метки времени первого файла по сравнению со значением метки времени второго файла.

• Для изменения меток времени служит функция SetFileTime; метки времени, не подлежащие изменению, при вызове функции указываются равными 0. NTFS поддерживает все три типа меток времени файлов, но FAT дает точные результаты только для меток времени последнего обращения.

• Функции FileTimeToLocalFileTime и LocalFileTimeToFileTime преобразуют значения меток времени, соответственно, от всеобщего скоординированного времени UTC к местному времени и наоборот.

Функция GetFileType, которая здесь подробно не описывается, позволяет различать файлы трех типов: дисковые, символьные (к ним, по сути, относятся такие устройства, как принтеры и консоли) и каналы (см. главу 11). Как и в большинстве других случаев, файл, характеристику которого необходимо определить, задается дескриптором.

Функция GetFileAttributes принимает в качестве аргумента имя файла или каталога, а всю информацию об атрибутах передает через свое возвращаемое значение dwFileAttributes. 

DWORD GetFileAttributes(LPCTSTR lpFileName)

Возвращаемое значение: в случае успешного завершения — атрибуты файла, иначе — 0xFFFFFFFF.

Для определения атрибутов можно воспользоваться логическим сравнением возвращаемого значения функции с соответствующими масками значений атрибутов. Некоторые атрибуты, например атрибут временного файла, изначально устанавливаются функцией CreateFile. В качестве примера можно привести следующие атрибуты:

• FILE_ATTRIBUTE_DIRECTORY

• FILE_ATTRIBUTE_NORMAL

• FILE_ATTRIBUTE_READONLY

• FILE_ATTRIBUTE_TEMPORARY

Для изменения атрибутов именованных файлов служит функция SetFileAttributes. 

В UNIX трем вышеописанным функциям Find соответствуют функции opendir, readdir и closedir. Функция stat предоставляет размер файла и значения меток времени, а также информацию о его индивидуальном или групповом владельце, необходимую для защиты файлов в UNIX. Разновидностями этой функции являются функции fstat и lstat. Эти функции позволяют также получать информацию о типе файла. Метки времени файла в UNIX устанавливаются с помощью функции utime. Эквивалента атрибута временного файла в UNIX не существует.



Последние новости


Блюда из теста

Ватрушки постные Приготовить опару из 2 стаканов муки, теплой воды и дрожжей. Когда поднимется, всыпать соль, перемешать, добавить растертое с сахаром растительное масло, ароматическое масло или тертую ваниль, остальную муку и замесить тесто. Когда тесто подойдет, свернуть его в колбаску, нарезать на кусочки, раскатать из них маленькие лепешк...
Читать далее »

Блюда из морепродуктов

Кальмары с красным вином Тщательно промыть и очистить кальмаров (голову выбросить, щупальца оставить). Порезать на колечки, обсушить (можно использовать абсорбирующую бумагу). На большой сковороде подогреть масло. Положить мелко нарезанный лук и натертый чеснок и жарить до мягкости. Добавить колечки кальмаров и тушить, пока они не приобретут к...
Читать далее »

Блюда из рыбы

Солянка из рыбы, приготовленная на сковороде Очищенную и выпотрошенную рыбу вместе с кожей нарезать на небольшие кусочки, ошпарить и смыть с поверхности свернувшийся белок. Затем положить ее в смазанную маслом кастрюлю или казанок, добавить измельченные огурцы (без кожицы и семян), обжаренный до золотистого цвета лук, немного сливочного масла,...
Читать далее »

Выпечка

Пирог с черникой Для теста: 350 г муки, 2 чайные ложки разрыхлителя (углекислый аммоний), соль на кончике ножа, 150 г свиного смальца или маргарина, несколько ложек холодной воды. Для начинки: 500 г черники, 2 столовые ложки муки, 1 стакан сахара, 2 столовые ложки сливочного масла. Муку, соль и разрыхлитель смешать с жиром, постепенн...
Читать далее »

Блюда из теста. Часть 2

Блины заварные постные С вечера гречневую муку и половину пшеничной заварить 2 ½ стакана кипятка, быстро мешая, чтобы получилось густое тесто. Когда остынет, добавить еще 1 ½ стакана теплой воды и разведенные в 1/3 стакана воды дрожжи. Оставить на ночь в теплом месте. На следующий день ввести остальную муку, соль, сахар, выбить тесто лопаточкой, ч...
Читать далее »

Выпечка. Часть 6

Булочки с яблочным повидлом 4 булочки, 2 стакана густого яблочного повидла, 1–2 столовые ложки изюма, сахар и корица. Срезать с булочек верхнюю часть, вынуть середину и заполнить образовавшуюся пустоту повидлом, смешанным с изюмом. Посыпать сахаром с корицей и запечь в смазанной маслом форме или на сковороде в нежаркой духовке. Юбилейны...
Читать далее »

Выпечка. Часть 5

Чайный пирог 500 г пшеничной муки, 200 мл молока, 50 г дрожжей, 100 г сливочного масла, 100 г сахара, 2 желтка, 5 г соли. Для ореховой массы: 100 г орехов, 120 г сахара, 75 г сливочного масла, 25 мл воды. Для заварного крема: 200 мл молока, 75 г сахара, 2 яйца, 25 г пшеничной муки, 150 г сливочного масла, ванильный сахар. Опарное тес...
Читать далее »