Compartir a través de


CFile::CFile

Construye e inicializa un objeto CFile.

CFile( ); CFile(    CAtlTransactionManager* pTM ); CFile(    HANDLE hFile  ); CFile(    LPCTSTR lpszFileName,    UINT nOpenFlags  ); CFile(    LPCTSTR lpszFileName,    UINT nOpenFlags,    CAtlTransactionManager* pTM );

Parámetros

  • hFile
    Identificador de un archivo que se va a adjuntar al objeto CFile.

  • lpszFileName
    Ruta completa o relativa de un archivo que se va a adjuntar al objeto CFile.

  • nOpenFlags
    Combinación bit a bit (OR) de las opciones de acceso de archivo relativas al archivo especificado. Consulte la sección Comentarios para ver las opciones posibles.

  • pTM
    Puntero al objeto CAtlTransactionManager

Comentarios

En las cinco tablas siguientes se enumeran las opciones posibles relativas al parámetro nOpenFlags.

Elija solo una de las siguientes opciones de modo de acceso de archivo. El modo de acceso de archivo predeterminado es CFile::modeRead, que es de solo lectura.

Valor

Descripción

CFile::modeRead

Solicita únicamente acceso de lectura.

CFile::modeWrite

Solicita únicamente acceso de escritura.

CFile::modeReadWrite

Solicita acceso de lectura y escritura.

Elija solo una de las siguientes opciones de modo de carácter.

Valor

Descripción

CFile::typeBinary

Establece el modo binario (solo se usa en clases derivadas).

CFile::typeText

Establece el modo de texto con procesamiento especial para pares de retorno de carro-avance de línea (solo se usa en clases derivadas).

CFile::typeUnicode

Establece el modo Unicode (solo se usa en clases derivadas). El texto se escribe en el archivo en formato Unicode cuando la aplicación se basa en una configuración de Unicode. No se escriba ninguna BOM en el archivo.

Elija solo una de las siguientes opciones de modo de uso compartido de archivo. El modo de uso compartido de archivo predeterminado es CFile::shareExclusive, que es exclusivo.

Valor

Descripción

CFile::shareDenyNone

No hay restricciones de uso compartido.

CFile::shareDenyRead

Deniega el acceso de lectura al resto.

CFile::shareDenyWrite

Deniega el acceso de escritura al resto.

CFile::shareExclusive

Deniega el acceso de lectura y escritura al resto.

Elija la primera (o ambas) de las siguientes opciones de modo de creación de archivo. El modo de creación de archivo predeterminado es CFile::modeNoTruncate, que solo permite abrir archivos existentes.

Valor

Descripción

CFile::modeCreate

Crea un archivo si no existe uno; si lo hay, se genera una CFileException.

CFile::modeNoTruncate

Crea un archivo si no existe uno; si, por el contrario, hay un archivo, se adjunta al objeto CFile.

Elija de entre las siguientes opciones de almacenamiento en caché según la descripción. El sistema usa de forma predeterminada un esquema de almacenamiento en caché de propósito general que no está disponible como opción.

Valor

Descripción

CFile::osNoBuffer

El sistema no usa una memoria caché intermedia para el archivo. Esta opción anula las dos opciones siguientes.

CFile::osRandomAccess

La memoria caché de archivos se optimiza para el acceso aleatorio. No use esta opción junto con la opción de análisis secuencial.

CFile::osSequentialScan

La memoria caché de archivos se optimiza para el acceso secuencial. No use esta opción junto con la opción de acceso secuencial.

CFile::osWriteThrough

Las operaciones de escritura se efectúan sin retraso.

Elija la siguiente opción de seguridad para impedir que el identificador de archivos se herede. Cualquier proceso secundario nuevo puede usar el identificador de archivos de forma predeterminada.

Valor

Descripción

CFile::modeNoInherit

Impide que los procesos secundarios puedan usar el identificador de archivos.

El constructor predeterminado inicializa miembros, pero no adjunta un archivo al objeto CFile. Tras usar este constructor, recurra al método CFile::Open para abrir un archivo y adjuntarlo al objeto CFile.

El constructor con un parámetro inicializa miembros y adjunta un archivo existente al objeto CFile.

El constructor con dos parámetros inicializa miembros y trata de abrir el archivo especificado. Si este constructor abre el archivo especificado sin problemas, dicho archivo se adjunta al objeto CFile; de lo contrario, el constructor produce un puntero al objeto CInvalidArgException. Para más información sobre cómo controlar excepciones, vea el tema sobre excepciones.

Si un objeto CFile abre el archivo especificado sin problemas, lo cerrará automáticamente cuando el objeto CFile se destruya; de lo contrario, deberá cerrarlo usted expresamente cuando deje de estar adjunto al objeto CFile.

Ejemplo

En el siguiente código se muestra cómo usar un CFile.

HANDLE hFile = CreateFile(_T("CFile_File.dat"),
   GENERIC_WRITE, FILE_SHARE_READ,
   NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);

if (hFile == INVALID_HANDLE_VALUE)
{
   AfxMessageBox(_T("Couldn't create the file!"));
}
else
{
   // Attach a CFile object to the handle we have.
   CFile myFile(hFile);

   static const TCHAR sz[] = _T("I love CFile!");

   // write string
   myFile.Write(sz, sizeof(sz));

   // We can call Close() explicitly, but the destructor would have 
   // also closed the file for us. Note that there's no need to 
   // call the CloseHandle() on the handle returned by the API because 
   // MFC will close it for us.
   myFile.Close();

Requisitos

Encabezado: afx.h

Vea también

Referencia

CFile Class

Gráfico de jerarquías