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.