Clase CFileFind
Efectúa búsquedas de archivos locales y es la clase base para CGopherFileFind
y CFtpFileFind
, que efectúan búsquedas de archivos de Internet.
Sintaxis
class CFileFind : public CObject
Miembros
Constructores públicos
Nombre | Descripción |
---|---|
CFileFind::CFileFind |
Construye un objeto CFileFind . |
Métodos públicos
Nombre | Descripción |
---|---|
CFileFind::Close |
Cierra la solicitud de búsqueda. |
CFileFind::FindFile |
Busca en un directorio un nombre de archivo especificado. |
CFileFind::FindNextFile |
Continúa una búsqueda de archivo de una llamada anterior a FindFile . |
CFileFind::GetCreationTime |
Obtiene la hora de creación del archivo. |
CFileFind::GetFileName |
Obtiene el nombre, incluida la extensión, del archivo encontrado. |
CFileFind::GetFilePath |
Obtiene la ruta de acceso completa del archivo encontrado. |
CFileFind::GetFileTitle |
Obtiene el título del archivo encontrado. El título no incluye la extensión. |
CFileFind::GetFileURL |
Obtiene la dirección URL, incluida la ruta de acceso, del archivo encontrado. |
CFileFind::GetLastAccessTime |
Obtiene la hora a la que se accedió por última vez al archivo. |
CFileFind::GetLastWriteTime |
Obtiene la hora en la que el archivo se cambió y se guardó por última vez. |
CFileFind::GetLength |
Obtiene la longitud del archivo encontrado, en bytes. |
CFileFind::GetRoot |
Obtiene el directorio raíz del archivo encontrado. |
CFileFind::IsArchived |
Determina si el archivo encontrado está archivado. |
CFileFind::IsCompressed |
Determina si el archivo encontrado está comprimido. |
CFileFind::IsDirectory |
Determina si el archivo encontrado es un directorio. |
CFileFind::IsDots |
Determina si el nombre del archivo encontrado es "." o "..", lo que indica que es realmente un directorio. |
CFileFind::IsHidden |
Determina si el archivo encontrado está oculto. |
CFileFind::IsNormal |
Determina si el archivo encontrado es normal (es decir, no tiene otros atributos). |
CFileFind::IsReadOnly |
Determina si el archivo encontrado es de solo lectura. |
CFileFind::IsSystem |
Determina si el archivo encontrado es un archivo del sistema. |
CFileFind::IsTemporary |
Determina si el archivo encontrado es temporal. |
CFileFind::MatchesMask |
Indica los atributos de archivo deseados del archivo que se debe encontrar. |
Métodos protegidos
Nombre | Descripción |
---|---|
CFileFind::CloseContext |
Cierra el archivo especificado por el identificador de búsqueda actual. |
Miembros de datos protegidos
Nombre | Descripción |
---|---|
CFileFind::m_pTM |
Un puntero a un objeto CAtlTransactionManager . |
Comentarios
CFileFind
incluye funciones miembro que inician una búsqueda, localizan un archivo y devuelven el título, el nombre o la ruta de acceso del archivo. En el caso de las búsquedas en Internet, la función miembro GetFileURL
devuelve la dirección URL del archivo.
CFileFind
es la clase base para dos otras clases MFC diseñadas para buscar determinados tipos de servidor: CGopherFileFind
funciona específicamente con servidores Gopher y CFtpFileFind
funciona específicamente con servidores FTP. Combinadas, estas tres clases proporcionan un mecanismo eficiente para que el cliente encuentre archivos, independientemente del protocolo del servidor, del tipo de archivo o de la ubicación, ya sea una máquina local o un servidor remoto.
El código siguiente enumerará todos los archivos del directorio actual e imprimirá el nombre de cada archivo:
CFileFind finder;
BOOL bWorking = finder.FindFile(_T("*.*"));
while (bWorking)
{
bWorking = finder.FindNextFile();
TRACE(_T("%s\n"), (LPCTSTR)finder.GetFileName());
}
Para simplificar el ejemplo, este código usa la clase cout
de la biblioteca estándar de C++. La línea cout
podría reemplazarse por una llamada a CListBox::AddString
, por ejemplo, en un programa con una interfaz gráfica de usuario.
Para más información sobre cómo usar CFileFind
y las otras clases de WinInet, consulte el artículo Programación de Internet con WinInet.
Jerarquía de herencia
CFileFind
Requisitos
Encabezado: afx.h
CFileFind::CFileFind
Se llama a esta función miembro cuando se construye un objeto CFileFind
.
CFileFind();
CFileFind(CAtlTransactionManager* pTM);
Parámetros
pTM
Puntero al objeto CAtlTransactionManager
Ejemplo
Vea el ejemplo de CFileFind::GetFileName
.
CFileFind::Close
Llame a esta función miembro para finalizar la búsqueda, restablecer el contexto y liberar todos los recursos.
void Close();
Comentarios
Después de llamar a Close
, no es necesario crear una nueva instancia de CFileFind
antes de llamar a FindFile
para iniciar una nueva búsqueda.
Ejemplo
Vea el ejemplo de CFileFind::GetFileName
.
CFileFind::CloseContext
Cierra el archivo especificado por el identificador de búsqueda actual.
virtual void CloseContext();
Comentarios
Cierra el archivo especificado por el valor actual del identificador de búsqueda. Invalide esta función para cambiar el comportamiento predeterminado.
Debe llamar a las funciones FindFile
o FindNextFile
al menos una vez para recuperar un identificador de búsqueda válido. Las funciones FindFile
y FindNextFile
usan el identificador de búsqueda para localizar archivos con nombres que coincidan con un nombre determinado.
CFileFind::FindFile
Llame a esta función miembro para abrir la búsqueda de un archivo.
virtual BOOL FindFile(
LPCTSTR pstrName = NULL,
DWORD dwUnused = 0);
Parámetros
pstrName
Puntero a una cadena que contiene el nombre del archivo que se va a buscar. Si pasa NULL
para pstrName
, FindFile
realiza una búsqueda con caracteres comodín (*.*).
dwUnused
Reservado para hacer que FindFile
sea polimórfico con clases derivadas. Debe ser 0.
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero. Para obtener información de errores extendida, llame a la función GetLastError
de Win32.
Comentarios
Después de llamar a FindFile
para iniciar la búsqueda de archivos, llame a FindNextFile
para recuperar los archivos posteriores. Debe llamar a FindNextFile
al menos una vez antes de llamar a cualquiera de las siguientes funciones miembro de atributo:
Ejemplo
Vea el ejemplo de CFileFind::IsDirectory
.
CFileFind::FindNextFile
Llame a esta función miembro para continuar una búsqueda de archivo desde una llamada anterior a FindFile
.
virtual BOOL FindNextFile();
Valor devuelto
Distinto de cero si hay más archivos; cero si el archivo encontrado es el último del directorio o si se produjo un error. Para obtener información de errores extendida, llame a la función GetLastError
de Win32. Si el archivo encontrado es el último archivo del directorio o si no se encuentra ningún archivo coincidente, la función GetLastError
devuelve ERROR_NO_MORE_FILES
.
Comentarios
Debe llamar a FindNextFile
al menos una vez antes de llamar a cualquiera de las siguientes funciones miembro de atributo:
FindNextFile
encapsula la función FindNextFile
de Win32.
Ejemplo
Vea el ejemplo de CFileFind::IsDirectory
.
CFileFind::GetCreationTime
Llame a esta función miembro para obtener la hora en la que se creó el archivo especificado.
virtual BOOL GetCreationTime(FILETIME* pTimeStamp) const;
virtual BOOL GetCreationTime(CTime& refTime) const;
Parámetros
pTimeStamp
Puntero a una estructura FILETIME
que contiene la hora en que se creó el archivo.
refTime
Referencia a un objeto CTime
.
Valor devuelto
Distinto de cero si se realiza correctamente; 0 si no. GetCreationTime
devuelve 0 solo si nunca se ha llamado a FindNextFile
en este objeto CFileFind
.
Comentarios
Debe llamar a FindNextFile
al menos una vez antes de llamar a GetCreationTime
.
Nota:
No todos los sistemas de archivos usan la misma semántica para implementar la marca de tiempo devuelta por esta función. Esta función puede devolver el mismo valor devuelto por otras funciones de marca de tiempo si el servidor o el sistema de archivos subyacentes no admiten mantener el atributo del tiempo. Consulte la estructura WIN32_FIND_DATA
para información sobre los formatos de hora. En algunos sistemas operativos, la hora devuelta es la de la zona horaria local de la máquina donde se encuentra el archivo. Consulte la API FileTimeToLocalFileTime
de Win32 para más información.
Ejemplo
Vea el ejemplo de CFileFind::GetLength
.
CFileFind::GetFileName
Llame a esta función miembro para obtener el nombre del archivo encontrado.
virtual CString GetFileName() const;
Valor devuelto
Nombre del archivo encontrado más recientemente.
Comentarios
Debe llamar a FindNextFile
al menos una vez antes de llamar a GetFileName.
GetFileName
es una de las tres funciones miembro CFileFind
que devuelven alguna forma del nombre de archivo. En la lista siguiente se describen las tres y cómo varían:
GetFileName
devuelve el nombre de archivo, incluida la extensión. Por ejemplo, al llamar aGetFileName
para generar un mensaje de usuario sobre el archivoc:\myhtml\myfile.txt
, se devuelve el nombre de archivomyfile.txt
.GetFilePath
devuelve la ruta de acceso completa del archivo. Por ejemplo, al llamar aGetFilePath
para generar un mensaje de usuario sobre el archivoc:\myhtml\myfile.txt
, se devuelve la ruta de acceso de archivoc:\myhtml\myfile.txt
.GetFileTitle
devuelve el nombre de archivo, excepto la extensión de archivo. Por ejemplo, al llamar aGetFileTitle
para generar un mensaje de usuario sobre el archivoc:\myhtml\myfile.txt
, se devuelve el título de archivomyfile
.
Ejemplo
CFileFind finder;
static const TCHAR szFileToFind[] = _T("C:\\WINDOWS\\SYSTEM.INI");
BOOL bResult = finder.FindFile(szFileToFind);
if (bResult)
{
finder.FindNextFile();
TRACE(_T("Root of %s is %s\n"), szFileToFind,
(LPCTSTR)finder.GetRoot());
TRACE(_T("Title of %s is %s\n"), szFileToFind,
(LPCTSTR)finder.GetFileTitle());
TRACE(_T("Path of %s is %s\n"), szFileToFind,
(LPCTSTR)finder.GetFilePath());
TRACE(_T("URL of %s is %s\n"), szFileToFind,
(LPCTSTR)finder.GetFileURL());
TRACE(_T("Name of %s is %s\n"), szFileToFind,
(LPCTSTR)finder.GetFileName());
finder.Close();
}
else
{
TRACE(_T("You have no %s file.\n"), szFileToFind);
}
CFileFind::GetFilePath
Llame a esta función miembro para obtener la ruta de acceso completa del archivo especificado.
virtual CString GetFilePath() const;
Valor devuelto
Ruta de acceso del archivo especificado.
Comentarios
Debe llamar a FindNextFile
al menos una vez antes de llamar a GetFilePath
.
GetFilePath
es una de las tres funciones miembro CFileFind
que devuelven alguna forma del nombre de archivo. En la lista siguiente se describen las tres y cómo varían:
GetFileName
devuelve el nombre de archivo, incluida la extensión. Por ejemplo, al llamar aGetFileName
para generar un mensaje de usuario sobre el archivoc:\myhtml\myfile.txt
, se devuelve el nombre de archivomyfile.txt
.GetFilePath
devuelve la ruta de acceso completa del archivo. Por ejemplo, al llamar aGetFilePath
para generar un mensaje de usuario sobre el archivoc:\myhtml\myfile.txt
, se devuelve la ruta de acceso de archivoc:\myhtml\myfile.txt
.GetFileTitle devuelve el nombre de archivo, excepto la extensión de archivo. Por ejemplo, al llamar a
GetFileTitle
para generar un mensaje de usuario sobre el archivoc:\myhtml\myfile.txt
, se devuelve el título de archivomyfile
.
Ejemplo
Vea el ejemplo de CFileFind::GetFileName
.
CFileFind::GetFileTitle
Llame a esta función miembro para obtener el título del archivo encontrado.
virtual CString GetFileTitle() const;
Valor devuelto
Título del archivo.
Comentarios
Debe llamar a FindNextFile
al menos una vez antes de llamar a GetFileTitle
.
GetFileTitle
es una de las tres funciones miembro CFileFind
que devuelven alguna forma del nombre de archivo. En la lista siguiente se describen las tres y cómo varían:
GetFileName
devuelve el nombre de archivo, incluida la extensión. Por ejemplo, al llamar aGetFileName
para generar un mensaje de usuario sobre el archivoc:\myhtml\myfile.txt
, se devuelve el nombre de archivomyfile.txt
.GetFilePath
devuelve la ruta de acceso completa del archivo. Por ejemplo, al llamar aGetFilePath
para generar un mensaje de usuario sobre el archivoc:\myhtml\myfile.txt
, se devuelve la ruta de acceso de archivo c:\myhtml\myfile.txt.GetFileTitle
devuelve el nombre de archivo, excepto la extensión de archivo. Por ejemplo, al llamar aGetFileTitle
para generar un mensaje de usuario sobre el archivoc:\myhtml\myfile.txt
, se devuelve el título de archivomyfile
.
Ejemplo
Vea el ejemplo de CFileFind::GetFileName
.
CFileFind::GetFileURL
Llame a esta función miembro para recuperar la dirección URL especificada.
virtual CString GetFileURL() const;
Valor devuelto
Dirección URL completa.
Comentarios
Debe llamar a FindNextFile
al menos una vez antes de llamar a GetFileURL
.
GetFileURL
es similar a la función miembro GetFilePath
, salvo que devuelve la dirección URL con el formato file://path
. Por ejemplo, al llamar a GetFileURL
para obtener la dirección URL completa para myfile.txt
, se devuelve la dirección URL file://c:\myhtml\myfile.txt
.
Ejemplo
Vea el ejemplo de CFileFind::GetFileName
.
CFileFind::GetLastAccessTime
Llame a esta función miembro para obtener la hora en la que se accedió por última vez al archivo especificado.
virtual BOOL GetLastAccessTime(CTime& refTime) const;
virtual BOOL GetLastAccessTime(FILETIME* pTimeStamp) const;
Parámetros
refTime
Referencia a un objeto CTime
.
pTimeStamp
Puntero a una estructura FILETIME
que contiene la hora en que se accedió por última vez al archivo.
Valor devuelto
Distinto de cero si se realiza correctamente; 0 si no. GetLastAccessTime
devuelve 0 solo si nunca se ha llamado a FindNextFile
en este objeto CFileFind
.
Comentarios
Debe llamar a FindNextFile
al menos una vez antes de llamar a GetLastAccessTime
.
Nota:
No todos los sistemas de archivos usan la misma semántica para implementar la marca de tiempo devuelta por esta función. Esta función puede devolver el mismo valor devuelto por otras funciones de marca de tiempo si el servidor o el sistema de archivos subyacentes no admiten mantener el atributo del tiempo. Consulte la estructura WIN32_FIND_DATA
para información sobre los formatos de hora. En algunos sistemas operativos, la hora devuelta es la de la zona horaria local de la máquina donde se encuentra el archivo. Consulte la API FileTimeToLocalFileTime
de Win32 para más información.
Ejemplo
Vea el ejemplo de CFileFind::GetLength
.
CFileFind::GetLastWriteTime
Llame a esta función miembro para obtener la hora en que se cambió el archivo por última vez.
virtual BOOL GetLastWriteTime(FILETIME* pTimeStamp) const;
virtual BOOL GetLastWriteTime(CTime& refTime) const;
Parámetros
pTimeStamp
Puntero a una estructura FILETIME
que contiene la hora en que se escribió por última vez en el archivo.
refTime
Referencia a un objeto CTime
.
Valor devuelto
Distinto de cero si se realiza correctamente; 0 si no. GetLastWriteTime
devuelve 0 solo si nunca se ha llamado a FindNextFile
en este objeto CFileFind
.
Comentarios
Debe llamar a FindNextFile
al menos una vez antes de llamar a GetLastWriteTime
.
Nota:
No todos los sistemas de archivos usan la misma semántica para implementar la marca de tiempo devuelta por esta función. Esta función puede devolver el mismo valor devuelto por otras funciones de marca de tiempo si el servidor o el sistema de archivos subyacentes no admiten mantener el atributo del tiempo. Consulte la estructura WIN32_FIND_DATA
para información sobre los formatos de hora. En algunos sistemas operativos, la hora devuelta es la de la zona horaria local de la máquina donde se encuentra el archivo. Consulte la API FileTimeToLocalFileTime
de Win32 para más información.
Ejemplo
Vea el ejemplo de CFileFind::GetLength
.
CFileFind::GetLength
Llame a esta función miembro para obtener la longitud del archivo encontrado, en bytes.
ULONGLONG GetLength() const;
Valor devuelto
Longitud del archivo encontrado, en bytes.
Comentarios
Debe llamar a FindNextFile
al menos una vez antes de llamar a GetLength
.
GetLength
usa la estructura WIN32_FIND_DATA
de Win32 para obtener y devolver el valor del tamaño de archivo, en bytes.
Nota:
A partir de MFC 7.0, GetLength
admite tipos enteros de 64 bits. El código existente previamente construido con esta versión más reciente de la biblioteca puede dar lugar a advertencias de truncamiento.
Ejemplo
// This code fragment prints out a very verbose directory
// listing for all the files in the root directory on the
// C: drive. After the file's name, each attribute of the
// file is printed, as are the creation, last access, and
// last write times.
CFileFind finder;
BOOL bWorking = finder.FindFile(_T("C:\\*.*"));
while (bWorking)
{
bWorking = finder.FindNextFile();
_tprintf_s(_T("%s\n\t"), (LPCTSTR)finder.GetFileName());
_tprintf_s(_T("%c"), finder.IsArchived() ? 'A' : 'a');
_tprintf_s(_T("%c"), finder.IsCompressed() ? 'C' : 'c');
_tprintf_s(_T("%c"), finder.IsHidden() ? 'H' : 'h');
_tprintf_s(_T("%c"), finder.IsNormal() ? 'N' : 'n');
_tprintf_s(_T("%c"), finder.IsReadOnly() ? 'R' : 'r');
_tprintf_s(_T("%c"), finder.IsSystem() ? 'S' : 's');
_tprintf_s(_T("%c"), finder.IsTemporary() ? 'T' : 't');
_tprintf_s(_T("\t%I64u byte(s)\n"), finder.GetLength());
CTime tempTime;
CString str;
_tprintf_s(_T("\tCreated : "));
if (finder.GetCreationTime(tempTime))
{
str = tempTime.Format(_T("%c"));
_tprintf_s(_T("%s\n"), (LPCTSTR) str);
}
else
{
_tprintf_s(_T("(unavailable)\n"));
}
_tprintf_s(_T("\tLast Access: "));
if (finder.GetLastAccessTime(tempTime))
{
str = tempTime.Format(_T("%c"));
_tprintf_s(_T("%s\n"), (LPCTSTR) str);
}
else
{
_tprintf_s(_T("(unavailable)\n"));
}
_tprintf_s(_T("\tLast Write : "));
if (finder.GetLastWriteTime(tempTime))
{
str = tempTime.Format(_T("%c"));
_tprintf_s(_T("%s\n"), (LPCTSTR) str);
}
else
{
_tprintf_s(_T("(unavailable)\n"));
}
_tprintf_s(_T("\n"));
}
CFileFind::GetRoot
Llame a esta función miembro para obtener la raíz del archivo encontrado.
virtual CString GetRoot() const;
Valor devuelto
Raíz de la búsqueda activa.
Comentarios
Debe llamar a FindNextFile
al menos una vez antes de llamar a GetRoot
.
Esta función miembro devuelve el especificador de unidad y el nombre de ruta de acceso usados para iniciar una búsqueda. Por ejemplo, llamar a FindFile
con *.dat
da lugar a que GetRoot
devuelva una cadena vacía. Pasar una ruta de acceso, como c:\windows\system\*.dll
, a FindFile
da lugar a que GetRoot
devuelva c:\windows\system\
.
Ejemplo
Vea el ejemplo de CFileFind::GetFileName
.
CFileFind::IsArchived
Llame a esta función miembro para determinar si el archivo encontrado está archivado.
BOOL IsArchived() const;
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Comentarios
Las aplicaciones marcan un archivo de archivado, del que se debe hacer copia de seguridad o se debe quitar, con FILE_ATTRIBUTE_ARCHIVE
, un atributo de archivo identificado en la estructura WIN32_FIND_DATA
.
Debe llamar a FindNextFile
al menos una vez antes de llamar a IsArchived
.
Consulte la función miembro MatchesMask
para una lista completa de atributos de archivo.
Ejemplo
Vea el ejemplo de CFileFind::GetLength
.
CFileFind::IsCompressed
Llame a esta función miembro para determinar si el archivo encontrado está comprimido.
BOOL IsCompressed() const;
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Comentarios
Un archivo comprimido se marca con FILE_ATTRIBUTE_COMPRESSED
, un atributo de archivo identificado en la estructura WIN32_FIND_DATA
. Para un archivo, este atributo indica que todos los datos del archivo están comprimidos. Para un directorio, este atributo indica que la compresión es el valor predeterminado para los archivos y subdirectorios recién creados.
Debe llamar a FindNextFile
al menos una vez antes de llamar a IsCompressed
.
Consulte la función miembro MatchesMask
para una lista completa de atributos de archivo.
Ejemplo
Vea el ejemplo de CFileFind::GetLength
.
CFileFind::IsDirectory
Llame a esta función miembro para determinar si el archivo encontrado es un directorio.
BOOL IsDirectory() const;
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Comentarios
Un archivo que es un directorio se marca con FILE_ATTRIBUTE_DIRECTORY
, un atributo de archivo identificado en la estructura WIN32_FIND_DATA
.
Debe llamar a FindNextFile
al menos una vez antes de llamar a IsDirectory
.
Consulte la función miembro MatchesMask
para una lista completa de atributos de archivo.
Ejemplo
Este pequeño programa se repite en todos los directorios de la unidad C:\ e imprime el nombre del directorio.
void Recurse(LPCTSTR pstr)
{
CFileFind finder;
// build a string with wildcards
CString strWildcard(pstr);
strWildcard += _T("\\*.*");
// start working for files
BOOL bWorking = finder.FindFile(strWildcard);
while (bWorking)
{
bWorking = finder.FindNextFile();
// skip . and .. files; otherwise, we'd
// recur infinitely!
if (finder.IsDots())
continue;
// if it's a directory, recursively search it
if (finder.IsDirectory())
{
CString str = finder.GetFilePath();
TRACE(_T("%s\n"), (LPCTSTR)str);
Recurse(str);
}
}
finder.Close();
}
void PrintDirs()
{
Recurse(_T("C:"));
}
CFileFind::IsDots
Llame a esta función miembro para probar los marcadores de directorio y directorio primario actuales mientras itera a través de los archivos.
virtual BOOL IsDots() const;
Valor devuelto
Distinto de cero si el archivo encontrado tiene el nombre "." o "..", que indica que el archivo encontrado es realmente un directorio. De lo contrario, 0.
Comentarios
Debe llamar a FindNextFile
al menos una vez antes de llamar a IsDots
.
Ejemplo
Vea el ejemplo de CFileFind::IsDirectory
.
CFileFind::IsHidden
Llame a esta función miembro para determinar si el archivo encontrado está oculto.
BOOL IsHidden() const;
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Comentarios
Archivos ocultos, marcados con FILE_ATTRIBUTE_HIDDEN
, un atributo de archivo identificado en la estructura WIN32_FIND_DATA
. Un archivo oculto no se incluye en una lista de directorios normal.
Debe llamar a FindNextFile
al menos una vez antes de llamar a IsHidden
.
Consulte la función miembro MatchesMask
para una lista completa de atributos de archivo.
Ejemplo
Vea el ejemplo de CFileFind::GetLength
.
CFileFind::IsNormal
Llame a esta función miembro para determinar si el archivo encontrado es un archivo normal.
BOOL IsNormal() const;
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Comentarios
Los archivos marcados con FILE_ATTRIBUTE_NORMAL
, un atributo de archivo identificado en la estructura WIN32_FIND_DATA
. Un archivo normal no tiene ningún otro atributo establecido. Todos los demás atributos del archivo invalidan este atributo.
Debe llamar a FindNextFile
al menos una vez antes de llamar a IsNormal
.
Consulte la función miembro MatchesMask
para una lista completa de atributos de archivo.
Ejemplo
Vea el ejemplo de CFileFind::GetLength
.
CFileFind::IsReadOnly
Llame a esta función miembro para determinar si el archivo encontrado es de solo lectura.
BOOL IsReadOnly() const;
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Comentarios
Un archivo de solo lectura se marca con FILE_ATTRIBUTE_READONLY
, un atributo de archivo identificado en la estructura WIN32_FIND_DATA
. Las aplicaciones pueden leer un archivo de este tipo, pero no pueden escribir en él ni eliminarlo.
Debe llamar a FindNextFile
al menos una vez antes de llamar a IsReadOnly
.
Consulte la función miembro MatchesMask
para una lista completa de atributos de archivo.
Ejemplo
Vea el ejemplo de CFileFind::GetLength
.
CFileFind::IsSystem
Llame a esta función miembro para determinar si el archivo encontrado es un archivo del sistema.
BOOL IsSystem() const;
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Comentarios
Un archivo del sistema se marca con FILE_ATTRIBUTE_SYSTEM
, un atributo de archivo identificado en la estructura WIN32_FIND_DATA
. Un archivo del sistema forma parte del sistema operativo o este lo usa de manera exclusiva.
Debe llamar a FindNextFile
al menos una vez antes de llamar a IsSystem
.
Consulte la función miembro MatchesMask
para una lista completa de atributos de archivo.
Ejemplo
Vea el ejemplo de CFileFind::GetLength
.
CFileFind::IsTemporary
Llame a esta función miembro para determinar si el archivo encontrado es un archivo temporal.
BOOL IsTemporary() const;
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Comentarios
Un archivo temporal se marca con FILE_ATTRIBUTE_TEMPORARY
, un atributo de archivo identificado en la estructura WIN32_FIND_DATA
. Un archivo temporal se usa para el almacenamiento temporal. Las aplicaciones solo deben escribir en el archivo si es absolutamente necesario. La mayoría de los datos del archivo permanecen en memoria sin vaciarse en el medio porque el archivo se eliminará pronto.
Debe llamar a FindNextFile
al menos una vez antes de llamar a IsTemporary
.
Consulte la función miembro MatchesMask
para una lista completa de atributos de archivo.
Ejemplo
Vea el ejemplo de CFileFind::GetLength
.
CFileFind::m_pTM
Un puntero a un objeto CAtlTransactionManager
.
CAtlTransactionManager* m_pTM;
Comentarios
CFileFind::MatchesMask
Llame a esta función miembro para probar los atributos de archivo en el archivo encontrado.
virtual BOOL MatchesMask(DWORD dwMask) const;
Parámetros
dwMask
Especifica uno o varios atributos de archivo, identificados en la estructura WIN32_FIND_DATA
, para el archivo encontrado. Para buscar varios atributos, use el operador OR (|
) bit a bit. Cualquier combinación de los atributos siguientes es aceptable:
FILE_ATTRIBUTE_ARCHIVE
El archivo es un archivo de archivado. Las aplicaciones usan este atributo para marcar los archivos para crear una copia de seguridad o quitarlos.FILE_ATTRIBUTE_COMPRESSED
El archivo o directorio está comprimido. Para un archivo, significa que todos los datos del archivo están comprimidos. Para un directorio, significa que la compresión es el valor predeterminado para los archivos y subdirectorios recién creados.FILE_ATTRIBUTE_DIRECTORY
El archivo es un directorio.FILE_ATTRIBUTE_NORMAL
El archivo no tiene ningún otro atributo establecido. Este atributo solo es válido si se usa por sí solo. Todos los demás atributos del archivo invalidan este atributo.FILE_ATTRIBUTE_HIDDEN
El archivo está oculto. No se debe incluir en una lista de directorios normal.FILE_ATTRIBUTE_READONLY
El archivo es de solo lectura. Las aplicaciones pueden leer el archivo, pero no pueden escribir en él ni eliminarlo.FILE_ATTRIBUTE_SYSTEM
El archivo forma parte del sistema operativo o este lo usa de manera exclusiva.FILE_ATTRIBUTE_TEMPORARY
El archivo se usa para el almacenamiento temporal. Las aplicaciones solo deben escribir en el archivo si es absolutamente necesario. La mayoría de los datos del archivo permanecen en memoria sin vaciarse en el medio porque el archivo se eliminará pronto.
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero. Para obtener información de errores extendida, llame a la función GetLastError
de Win32.
Comentarios
Debe llamar a FindNextFile
al menos una vez antes de llamar a MatchesMask
.
Ejemplo
// This code fragment shows all of the files in the root directory
// of drive C: which have either the hidden attribute or the system
// attribute, or both.
CFileFind finder;
BOOL bWorking = finder.FindFile(_T("C:\\*.*"));
while (bWorking)
{
bWorking = finder.FindNextFile();
if (finder.MatchesMask(FILE_ATTRIBUTE_HIDDEN |
FILE_ATTRIBUTE_SYSTEM))
{
_tprintf_s(_T("%s\n"), (LPCTSTR) finder.GetFileName());
}
}
Vea también
CObject
(clase)
Gráfico de jerarquías
CFtpFileFind
(clase)
CGopherFileFind
(clase)
CInternetFile
(clase)
CGopherFile
(clase)
CHttpFile
(clase)