Compartir a través de


Clase CAtlTemporaryFile

Esta clase proporciona métodos para la creación y el uso de un archivo temporal.

Importante

Esta clase y sus miembros no se pueden usar en las aplicaciones que se ejecutan en Windows Runtime.

Sintaxis

class CAtlTemporaryFile

Miembros

Constructores públicos

Nombre Descripción
CAtlTemporaryFile::CAtlTemporaryFile Constructor .
CAtlTemporaryFile::~CAtlTemporaryFile El destructor .

Métodos públicos

Nombre Descripción
CAtlTemporaryFile::Close Llame a este método para cerrar un archivo temporal y eliminar su contenido o almacenarlo bajo el nombre de archivo especificado.
CAtlTemporaryFile::Create Llame a este método para crear un archivo temporal.
CAtlTemporaryFile::Flush Llame a este método para forzar que los datos que quedan en el búfer de archivos se escriban en el archivo temporal.
CAtlTemporaryFile::GetPosition Llame a este método para obtener la posición actual del puntero del archivo.
CAtlTemporaryFile::GetSize Llame a este método para obtener el tamaño, en bytes, del archivo temporal.
CAtlTemporaryFile::HandsOff Llame a este método para desasociar el archivo del objeto CAtlTemporaryFile.
CAtlTemporaryFile::HandsOn Llame a este método para abrir un archivo temporal existente y colocar el puntero al final del archivo.
CAtlTemporaryFile::LockRange Llame a este método para bloquear una región del archivo para evitar que otros procesos accedan a ella.
CAtlTemporaryFile::Read Llame a este método para leer datos de el archivo temporal a partir de la posición indicada por el puntero del archivo.
CAtlTemporaryFile::Seek Llame a este método para mover el puntero del archivo perteneciente al archivo temporal.
CAtlTemporaryFile::SetSize Llame a este método para establecer el tamaño del archivo temporal.
CAtlTemporaryFile::TempFileName Llame a este método para devolver el nombre del archivo temporal.
CAtlTemporaryFile::UnlockRange Llame a este método para desbloquear una región del archivo temporal.
CAtlTemporaryFile::Write Llame a este método para escribir datos en el archivo temporal a partir de la posición indicada por el puntero del archivo.

Operadores públicos

Nombre Descripción
CAtlTemporaryFile::operator HANDLE Devuelve un manipulador al archivo temporal.

Comentarios

CAtlTemporaryFile facilita la creación y el uso de archivos temporales. El archivo se denomina, abre, cierra y elimina automáticamente. Si el contenido del archivo es necesario después de cerrar el archivo, se puede guardar en un archivo nuevo con un nombre especificado.

Requisitos

Encabezado: atlfile.h

Ejemplo

Vea el ejemplo de CAtlTemporaryFile::CAtlTemporaryFile.

CAtlTemporaryFile::CAtlTemporaryFile

Constructor .

CAtlTemporaryFile() throw();

Comentarios

Un archivo no se abre realmente hasta que se realiza una llamada a CAtlTemporaryFile::Create.

Ejemplo

// Declare the temporary file object
CAtlTemporaryFile myTempFile;

// Create the temporary file, without caring where it
// will be created, but with both read and write access.
ATLVERIFY (myTempFile.Create(NULL, GENERIC_READ|GENERIC_WRITE) == S_OK);

// Create some data to write to the file

int nBuffer[100];
DWORD bytes_written = 0, bytes_read = 0;
int i;

for (i = 0; i < 100; i++)
   nBuffer[i] = i;

// Write some data to the file
myTempFile.Write(&nBuffer, sizeof(nBuffer), &bytes_written);

// Confirm it was written ok
ATLASSERT(bytes_written == sizeof(nBuffer));

// Flush the data to disk
ATLVERIFY(myTempFile.Flush() == S_OK);

// Reset the file pointer to the beginning of the file
ATLVERIFY(myTempFile.Seek(0, FILE_BEGIN) == S_OK);

// Read in the data
myTempFile.Read(&nBuffer, sizeof(nBuffer), bytes_read);

// Confirm it was read ok
ATLASSERT(bytes_read == sizeof(nBuffer));

// Close the file, making a copy of it at another location
ATLVERIFY(myTempFile.Close(_T("c:\\temp\\mydata.tmp")) == S_OK);

CAtlTemporaryFile::~CAtlTemporaryFile

El destructor .

~CAtlTemporaryFile() throw();

Comentarios

El destructor llama a CAtlTemporaryFile::Close.

CAtlTemporaryFile::Close

Llame a este método para cerrar un archivo temporal y eliminar su contenido o almacenarlo bajo el nombre de archivo especificado.

HRESULT Close(LPCTSTR szNewName = NULL) throw();

Parámetros

szNewName
Nombre del nuevo archivo en el que se almacena el contenido del archivo temporal. Si este argumento es NULL, se elimina el contenido del archivo temporal.

Valor devuelto

Devuelve S_OK si es correcto o un error HRESULT en caso de error.

Ejemplo

Vea el ejemplo de CAtlTemporaryFile::CAtlTemporaryFile.

CAtlTemporaryFile::Create

Llame a este método para crear un archivo temporal.

HRESULT Create(LPCTSTR pszDir = NULL, DWORD dwDesiredAccess = GENERIC_WRITE) throw();

Parámetros

pszDir
Ruta de acceso del archivo temporal. Si es NULL, se llamará a GetTempPath para asignar una ruta de acceso.

dwDesiredAccess
Acceso deseado. Consulte dwDesiredAccess en CreateFile en Windows SDK.

Valor devuelto

Devuelve S_OK si es correcto o un error HRESULT en caso de error.

Ejemplo

Vea el ejemplo de CAtlTemporaryFile::CAtlTemporaryFile.

CAtlTemporaryFile::Flush

Llame a este método para forzar que los datos que quedan en el búfer de archivos se escriban en el archivo temporal.

HRESULT Flush() throw();

Valor devuelto

Devuelve S_OK si es correcto o un error HRESULT en caso de error.

Comentarios

Similar a CAtlTemporaryFile::HandsOff, salvo que el archivo no está cerrado.

Ejemplo

Vea el ejemplo de CAtlTemporaryFile::CAtlTemporaryFile.

CAtlTemporaryFile::GetPosition

Llame a este método para obtener la posición actual del puntero del archivo.

HRESULT GetPosition(ULONGLONG& nPos) const throw();

Parámetros

nPos
Posición, en bytes.

Valor devuelto

Devuelve S_OK si es correcto o un error HRESULT en caso de error.

Comentarios

Para cambiar la posición del puntero de archivo, use CAtlTemporaryFile::Seek.

CAtlTemporaryFile::GetSize

Llame a este método para obtener el tamaño, en bytes, del archivo temporal.

HRESULT GetSize(ULONGLONG& nLen) const throw();

Parámetros

nLen
El número de bytes en el archivo.

Valor devuelto

Devuelve S_OK si es correcto o un error HRESULT en caso de error.

CAtlTemporaryFile::HandsOff

Llame a este método para desasociar el archivo del objeto CAtlTemporaryFile.

HRESULT HandsOff() throw();

Valor devuelto

Devuelve S_OK si es correcto o un error HRESULT en caso de error.

Comentarios

HandsOff y CAtlTemporaryFile::HandsOn se usan para desasociar el archivo del objeto y volver a adjuntarlo si es necesario. HandsOff forzará que los datos que quedan en el búfer de archivos se escriban en el archivo temporal y, después se cierre el archivo. Si desea cerrar y eliminar el archivo de forma permanente, o si desea cerrar y conservar el contenido del archivo con un nombre determinado, use CAtlTemporaryFile::Close.

CAtlTemporaryFile::HandsOn

Llame a este método para abrir un archivo temporal existente y colocar el puntero al final del archivo.

HRESULT HandsOn() throw();

Valor devuelto

Devuelve S_OK si es correcto o un error HRESULT en caso de error.

Comentarios

CAtlTemporaryFile::HandsOff y HandsOn se usan para desasociar el archivo del objeto y volver a adjuntarlo si es necesario.

CAtlTemporaryFile::LockRange

Llame a este método para bloquear una región del archivo temporal para evitar que otros procesos accedan a ella.

HRESULT LockRange(ULONGLONG nPos, ULONGLONG nCount) throw();

Parámetros

nPos
Posición en el archivo donde debe comenzar el bloqueo.

nCount
Longitud del intervalo de bytes que se va a bloquear.

Valor devuelto

Devuelve S_OK si es correcto o un error HRESULT en caso de error.

Comentarios

El bloqueo de bytes en un archivo impide que otros procesos obtengan acceso a dichos bytes. Puede bloquear más de una región de un archivo, pero no se permiten regiones superpuestas. Para desbloquear correctamente una región, use CAtlTemporaryFile::UnlockRange, y asegúrese de que el intervalo de bytes se corresponda exactamente con la región bloqueada anteriormente. LockRange no combina regiones adyacentes; si dos regiones bloqueadas son adyacentes, debe desbloquearlas por separado.

CAtlTemporaryFile::operator HANDLE

Devuelve un manipulador al archivo temporal.

operator HANDLE() throw();

CAtlTemporaryFile::Read

Llame a este método para leer datos de el archivo temporal a partir de la posición indicada por el puntero del archivo.

HRESULT Read(
    LPVOID pBuffer,
    DWORD nBufSize,
    DWORD& nBytesRead) throw();

Parámetros

pBuffer
Puntero al búfer que recibirá los datos leídos del archivo.

nBufSize
El tamaño del búfer en bytes.

nBytesRead
El número de bytes leídos.

Valor devuelto

Devuelve S_OK si es correcto o un error HRESULT en caso de error.

Comentarios

Llama a CAtlFile::Read. Para cambiar la posición del puntero de archivo, llame a CAtlTemporaryFile::Seek.

Ejemplo

Vea el ejemplo de CAtlTemporaryFile::CAtlTemporaryFile.

CAtlTemporaryFile::Seek

Llame a este método para mover el puntero del archivo perteneciente al archivo temporal.

HRESULT Seek(LONGLONG nOffset, DWORD dwFrom = FILE_CURRENT) throw();

Parámetros

nOffset
El desplazamiento, en bytes, desde el punto de partida proporcionado por dwFrom.

dwFrom
Punto de partida (FILE_BEGIN, FILE_CURRENT o FILE_END).

Valor devuelto

Devuelve S_OK si es correcto o un error HRESULT en caso de error.

Comentarios

Llama a CAtlFile::Seek. Para obtener la posición del puntero de archivo actual, llame a CAtlTemporaryFile::GetPosition.

Ejemplo

Vea el ejemplo de CAtlTemporaryFile::CAtlTemporaryFile.

CAtlTemporaryFile::SetSize

Llame a este método para establecer el tamaño del archivo temporal.

HRESULT SetSize(ULONGLONG nNewLen) throw();

Parámetros

nNewLen
Nueva longitud del archivo, en bytes.

Valor devuelto

Devuelve S_OK si es correcto o un error HRESULT en caso de error.

Comentarios

Llama a CAtlFile::SetSize. A cambio, el puntero del archivo se coloca al final del archivo.

CAtlTemporaryFile::TempFileName

Llame a este método para devolver el nombre del archivo temporal.

LPCTSTR TempFileName() throw();

Valor devuelto

Devuelve el LPCTSTR que apunta al nombre de archivo.

Comentarios

El nombre de archivo se genera en CAtlTemporaryFile::CAtlTemporaryFile con una llamada a la función GetTempFile de Windows SDK. La extensión de archivo siempre será "TFR" para el archivo temporal.

CAtlTemporaryFile::UnlockRange

Llame a este método para desbloquear una región del archivo temporal.

HRESULT UnlockRange(ULONGLONG nPos, ULONGLONG nCount) throw();

Parámetros

nPos
Posición en el archivo donde debe comenzar el desbloqueo.

nCount
Longitud del intervalo de bytes que se va a desbloquear.

Valor devuelto

Devuelve S_OK si es correcto o un error HRESULT en caso de error.

Comentarios

Llama a CAtlFile::UnlockRange.

CAtlTemporaryFile::Write

Llame a este método para escribir datos en el archivo temporal a partir de la posición indicada por el puntero del archivo.

HRESULT Write(
    LPCVOID pBuffer,
    DWORD nBufSize,
    DWORD* pnBytesWritten = NULL) throw();

Parámetros

pBuffer
Búfer que contiene los datos que se van a escribir en el archivo.

nBufSize
Número de bytes que se van a transferir desde el búfer.

pnBytesWritten
El número de bytes escritos.

Valor devuelto

Devuelve S_OK si es correcto o un error HRESULT en caso de error.

Comentarios

Llama a CAtlFile::Write.

Ejemplo

Vea el ejemplo de CAtlTemporaryFile::CAtlTemporaryFile.

Consulte también

Información general sobre la clase
CAtlFile (clase)