CFile::CFile
Construye e inicializa un objeto CFile.
Sintaxis
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 need to call Close() explicitly. Note that there's no need to
// call CloseHandle() on the handle returned by the API because
// Close() automatically calls CloseHandle() for us.
myFile.Close();
Requisitos
Encabezado: afx.h