Работа с файлами вне классов библиотеки MFC


На основе библиотек времени исполнения или Win32Api. Таким образом можно ввести в собственном окне диалога имя файла и воспользоваться библиотечными файлами или Win32APi.

Работа с библиотеками времени выполнения (runtime libraries

Используются для создания, удаления, манипуляции файлами, установкой и проверкой доступа.Однопоточная библиотека LIBC.LIB обеспечивает работу с 64 файлами или 20 потоками одновременно.Мультипоточные библиотеки статичного или динамичного типа (LIBCMT.LIB, MSVCTR.LIB, MSVCRT.DLL) имеют верхнюю границу в 256 файлов или до 40 потоков открытых одновременно. (подробности в Developer Products/Visual C++/Visual C++/Programming guide/Run-time library reference)Заголовочные файлы со спецификацией этих функций:<io.h>, <errno.h>, <sys/stat.h>, <sys/types.h>, <fcntl.h>, <uchar.h>.Все библиотечные процедуры совместимы с Win32Api, т.е. можно использовать параллельно. Совет: если привыкли к некой функции в ТурбоС, а компилятор отвечает, что её нет, поищите в виде _имя-функции.

Работа с файлами в Win32API

Этот раздел необходимо смотреть в сведения о платформе:Platform SDK and DDK Documentation/Platform SDK/Windows Base Services/Files and I/O / Files. Имеющиеся функции обеспечивают: создание, открытие, модификацию, удаление файлов и получение системных инструкций, копирование и перемещение файлов, работу с директориями, поиск файлов. Напр., могут создаваться временные файлы или отслеживаться изменения в директориях или в древовидных структурах директорий.

Класс CFile

 

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

 

char* pszFName = "c:\dir\myfile.dat";

CFile myFile;

CFileException myExcept;

 

if (!myFile.Open(pszFName,CFile::modeCreate|CFile::modeReadWrite,&myExcept))

{

TRACE("Cant open file %s, error = %u \n",pszFName,myExcept.m_cause);

 

В примере создаётся и открывается файл. Третий параметр – это исключение (exception), используемое для исключительных (ошибочных) операций. TRACE – это макрос, используемый для вывода имени файла и кода ошибки. Если требуется более подробная информация об ошибке то можно использовать глобальную функцию: AfxThrowException(), в которую передаются код ошибки (fileException.m_cause), системный код ошибки и ссылка на строку с именем файла.

К созданному объекту могут применяться методы Read, Write, Seek, Close, GetStatus и т.д.. Могут быть применены методы, блокирующие доступ к частям файла из других процессов, если есть такая опасность.

 



Дата добавления: 2016-05-26; просмотров: 1681;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.009 сек.