Работа с файлами вне классов библиотеки 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; просмотров: 1672;