Classe CFileFind
Executa pesquisas de arquivos locais e é a classe base para CGopherFileFind
e CFtpFileFind
, que executam pesquisas de arquivo na Internet.
Sintaxe
class CFileFind : public CObject
Membros
Construtores públicos
Nome | Descrição |
---|---|
CFileFind::CFileFind |
Constrói um objeto CFileFind . |
Métodos públicos
Nome | Descrição |
---|---|
CFileFind::Close |
Fecha a solicitação de pesquisa. |
CFileFind::FindFile |
Pesquisa um diretório para obter um nome de arquivo especificado. |
CFileFind::FindNextFile |
Continua uma pesquisa de arquivo de uma chamada anterior para FindFile . |
CFileFind::GetCreationTime |
Obtém a hora em que o arquivo foi criado. |
CFileFind::GetFileName |
Obtém o nome, incluindo a extensão, do arquivo encontrado |
CFileFind::GetFilePath |
Obtém todo o caminho do arquivo encontrado. |
CFileFind::GetFileTitle |
Obtém o título do arquivo encontrado. O título não inclui a extensão. |
CFileFind::GetFileURL |
Obtém a URL do arquivo localizado, incluindo o caminho do arquivo. |
CFileFind::GetLastAccessTime |
Obtém a hora em que o arquivo foi acessado pela última vez. |
CFileFind::GetLastWriteTime |
Obtém a hora em que o arquivo foi alterado e salvo pela última vez. |
CFileFind::GetLength |
Obtém o tamanho do arquivo encontrado, em bytes. |
CFileFind::GetRoot |
Obtém o diretório raiz do arquivo encontrado. |
CFileFind::IsArchived |
Determina se o arquivo encontrado foi arquivado. |
CFileFind::IsCompressed |
Determina se o arquivo encontrado foi compactado. |
CFileFind::IsDirectory |
Determina se o arquivo encontrado é um diretório. |
CFileFind::IsDots |
Determina se o nome do arquivo encontrado tem o nome "." ou "..", indicando que, na verdade, é um diretório. |
CFileFind::IsHidden |
Determina se o arquivo encontrado está oculto. |
CFileFind::IsNormal |
Determina se o arquivo encontrado é normal (em outras palavras, não tem outros atributos). |
CFileFind::IsReadOnly |
Determina se o arquivo encontrado é somente leitura. |
CFileFind::IsSystem |
Determina se o arquivo encontrado é um arquivo de sistema. |
CFileFind::IsTemporary |
Determina se o arquivo encontrado é temporário. |
CFileFind::MatchesMask |
Indica os atributos desejados do arquivo a ser encontrado. |
Métodos protegidos
Nome | Descrição |
---|---|
CFileFind::CloseContext |
Fecha o arquivo especificado pelo identificador de pesquisa atual. |
Membros de dados protegidos
Nome | Descrição |
---|---|
CFileFind::m_pTM |
Ponteiro para um objeto CAtlTransactionManager . |
Comentários
CFileFind
inclui funções de membro que iniciam uma pesquisa, localizam um arquivo e retornam o título, o nome ou o caminho do arquivo. Para pesquisas na Internet, a função de membro GetFileURL
retorna a URL do arquivo.
CFileFind
é a classe base para duas outras classes MFC criadas para pesquisar tipos de servidor específicos: CGopherFileFind
funciona especificamente com servidores gopher e CFtpFileFind
funciona especificamente com servidores FTP. Em conjunto, essas três classes fornecem um mecanismo integrado para que o cliente localize arquivos, independentemente do protocolo do servidor, do tipo de arquivo ou do local, em um computador local ou em um servidor remoto.
O código a seguir enumerará todos os arquivos no diretório atual, imprimindo o nome de cada arquivo:
CFileFind finder;
BOOL bWorking = finder.FindFile(_T("*.*"));
while (bWorking)
{
bWorking = finder.FindNextFile();
TRACE(_T("%s\n"), (LPCTSTR)finder.GetFileName());
}
Para manter o exemplo simples, esse código usa a classe cout
da Biblioteca Padrão C++. A linha cout
pode ser substituída por uma chamada para CListBox::AddString
, por exemplo, em um programa com uma interface gráfica do usuário.
Para obter mais informações sobre como usar CFileFind
e outras classes de WinInet, consulte o artigo Programação de Internet com WinInet.
Hierarquia de herança
CFileFind
Requisitos
Cabeçalho: afx.h
CFileFind::CFileFind
Essa função de membro é chamada quando um objeto CFileFind
é criado.
CFileFind();
CFileFind(CAtlTransactionManager* pTM);
Parâmetros
pTM
Ponteiro para objeto CAtlTransactionManager
Exemplo
Confira o exemplo de CFileFind::GetFileName
.
CFileFind::Close
Chame essa função de membro para encerrar a pesquisa, redefinir o contexto e liberar todos os recursos.
void Close();
Comentários
Depois de chamar Close
, você não precisa criar uma nova instância CFileFind
, antes de chamar FindFile
, para iniciar uma nova pesquisa.
Exemplo
Confira o exemplo de CFileFind::GetFileName
.
CFileFind::CloseContext
Fecha o arquivo especificado pelo identificador de pesquisa atual.
virtual void CloseContext();
Comentários
Fecha o arquivo especificado pelo valor atual do identificador de pesquisa. Substitua essa função para alterar o comportamento padrão.
Você deve chamar as funções FindFile
ou FindNextFile
pelo menos uma vez, para recuperar um identificador de pesquisa válido. As funções FindFile
e FindNextFile
usam o identificador de pesquisa para localizar arquivos com nomes que correspondem a determinado nome.
CFileFind::FindFile
Chame essa função de membro para abrir uma pesquisa de arquivo.
virtual BOOL FindFile(
LPCTSTR pstrName = NULL,
DWORD dwUnused = 0);
Parâmetros
pstrName
Um ponteiro para uma cadeia de caracteres contendo o nome do arquivo a ser localizado. Se você passar NULL
para pstrName
, FindFile
fará uma pesquisa curinga (*.*).
dwUnused
Reservado para tornar o FindFile
polimórfico com classes derivadas. Deve ser 0.
Valor de retorno
Diferente de zero se tiver êxito; caso contrário, 0. Para obter outras informações sobre o erro estendido, chame a função do Win32 GetLastError
.
Comentários
Depois de chamar FindFile
para iniciar a pesquisa de arquivos, chame FindNextFile
para recuperar os arquivos subsequentes. Você deve chamar FindNextFile
pelo menos uma vez, antes de chamar qualquer uma das seguintes funções de membro do atributo:
Exemplo
Confira o exemplo de CFileFind::IsDirectory
.
CFileFind::FindNextFile
Chame essa função de membro para continuar uma pesquisa de arquivo de uma chamada anterior para FindFile
.
virtual BOOL FindNextFile();
Valor de retorno
Diferente de zero se houver mais arquivos, zero se o arquivo encontrado for o último no diretório ou se ocorreu um erro. Para obter outras informações sobre o erro estendido, chame a função do Win32 GetLastError
. Se o arquivo encontrado for o último arquivo no diretório ou se nenhum arquivo correspondente puder ser encontrado, a função GetLastError
retornará ERROR_NO_MORE_FILES
.
Comentários
Você deve chamar FindNextFile
pelo menos uma vez, antes de chamar qualquer uma das seguintes funções de membro do atributo:
FindNextFile
encapsula a função FindNextFile
Win32.
Exemplo
Confira o exemplo de CFileFind::IsDirectory
.
CFileFind::GetCreationTime
Chame essa função de membro para obter a hora em que o arquivo especificado foi criado.
virtual BOOL GetCreationTime(FILETIME* pTimeStamp) const;
virtual BOOL GetCreationTime(CTime& refTime) const;
Parâmetros
pTimeStamp
Um ponteiro para uma estrutura FILETIME
que contém a hora em que o arquivo foi criado.
refTime
Uma referência a um objeto CTime
.
Valor de retorno
Um valor diferente de zero, se tiver êxito. 0, se falhar. GetCreationTime
retornará 0 somente se FindNextFile
nunca tiver sido chamado neste objeto CFileFind
.
Comentários
Você deve chamar FindNextFile
pelo menos uma vez, antes de chamar GetCreationTime
.
Observação
Nem todos os sistemas de arquivos usam a mesma semântica para implementar o carimbo de data/hora retornado por essa função. Essa função pode retornar o mesmo valor retornado por outras funções de carimbo de data/hora, se o sistema de arquivos ou servidor subjacente não permitir a manutenção do atributo de hora. Confira a estrutura WIN32_FIND_DATA
, para obter informações sobre formatos de hora. Em alguns sistemas de operação, a hora retornada está no fuso horário local para o computador, caso o arquivo esteja localizado. Confira a API FileTimeToLocalFileTime
do Win32, para obter mais informações.
Exemplo
Confira o exemplo de CFileFind::GetLength
.
CFileFind::GetFileName
Chame essa função de membro para obter o nome do arquivo encontrado.
virtual CString GetFileName() const;
Valor de retorno
O nome do arquivo encontrado mais recentemente.
Comentários
Você deve chamar FindNextFile
pelo menos uma vez, antes de chamar GetFileName.
GetFileName
é uma das três funções de membro CFileFind
que retornam alguma forma do nome do arquivo. A lista a seguir descreve as três e como elas variam:
GetFileName
retorna o nome do arquivo, incluindo a extensão. Por exemplo, chamarGetFileName
para gerar uma mensagem de usuário sobre o arquivoc:\myhtml\myfile.txt
retorna o nome do arquivomyfile.txt
.GetFilePath
retorna todo o caminho do arquivo. Por exemplo, chamarGetFilePath
para gerar uma mensagem de usuário sobre o arquivoc:\myhtml\myfile.txt
retorna o caminho do arquivoc:\myhtml\myfile.txt
.GetFileTitle
retorna o nome do arquivo, excluindo a extensão de arquivo. Por exemplo, chamarGetFileTitle
para gerar uma mensagem de usuário sobre o arquivoc:\myhtml\myfile.txt
retorna o título do arquivomyfile
.
Exemplo
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
Chame essa função de membro para obter o caminho completo do arquivo especificado.
virtual CString GetFilePath() const;
Valor de retorno
O caminho do arquivo especificado.
Comentários
Você deve chamar FindNextFile
pelo menos uma vez, antes de chamar GetFilePath
.
GetFilePath
é uma das três funções de membro CFileFind
que retornam alguma forma do nome do arquivo. A lista a seguir descreve as três e como elas variam:
GetFileName
retorna o nome do arquivo, incluindo a extensão. Por exemplo, chamarGetFileName
para gerar uma mensagem de usuário sobre o arquivoc:\myhtml\myfile.txt
retorna o nome do arquivomyfile.txt
.GetFilePath
retorna todo o caminho do arquivo. Por exemplo, chamarGetFilePath
para gerar uma mensagem de usuário sobre o arquivoc:\myhtml\myfile.txt
retorna o caminho do arquivoc:\myhtml\myfile.txt
.GetFileTitle retorna o nome do arquivo, excluindo a extensão de arquivo. Por exemplo, chamar
GetFileTitle
para gerar uma mensagem de usuário sobre o arquivoc:\myhtml\myfile.txt
retorna o título do arquivomyfile
.
Exemplo
Confira o exemplo de CFileFind::GetFileName
.
CFileFind::GetFileTitle
Chame essa função de membro para obter o título do arquivo encontrado.
virtual CString GetFileTitle() const;
Valor de retorno
O título do arquivo.
Comentários
Você deve chamar FindNextFile
pelo menos uma vez, antes de chamar GetFileTitle
.
GetFileTitle
é uma das três funções de membro CFileFind
que retornam alguma forma do nome do arquivo. A lista a seguir descreve as três e como elas variam:
GetFileName
retorna o nome do arquivo, incluindo a extensão. Por exemplo, chamarGetFileName
para gerar uma mensagem de usuário sobre o arquivoc:\myhtml\myfile.txt
retorna o nome do arquivomyfile.txt
.GetFilePath
retorna todo o caminho do arquivo. Por exemplo, chamarGetFilePath
para gerar uma mensagem de usuário sobre o arquivoc:\myhtml\myfile.txt
retorna o caminho do arquivo c:\myhtml\myfile.txt.GetFileTitle
retorna o nome do arquivo, excluindo a extensão de arquivo. Por exemplo, chamarGetFileTitle
para gerar uma mensagem de usuário sobre o arquivoc:\myhtml\myfile.txt
retorna o título do arquivomyfile
.
Exemplo
Confira o exemplo de CFileFind::GetFileName
.
CFileFind::GetFileURL
Chame essa função de membro para recuperar a URL especificada.
virtual CString GetFileURL() const;
Valor de retorno
A URL completa.
Comentários
Você deve chamar FindNextFile
pelo menos uma vez, antes de chamar GetFileURL
.
GetFileURL
é semelhante à função de membro GetFilePath
, exceto pelo fato de que retorna a URL no formulário file://path
. Por exemplo, chamar GetFileURL
para obter a URL completa para myfile.txt
retorna a URL file://c:\myhtml\myfile.txt
.
Exemplo
Confira o exemplo de CFileFind::GetFileName
.
CFileFind::GetLastAccessTime
Chame essa função de membro para obter a hora em que o arquivo especificado foi acessado pela última vez.
virtual BOOL GetLastAccessTime(CTime& refTime) const;
virtual BOOL GetLastAccessTime(FILETIME* pTimeStamp) const;
Parâmetros
refTime
Uma referência a um objeto CTime
.
pTimeStamp
Um ponteiro para uma estrutura FILETIME
que contém a hora em que o arquivo foi acessado pela última vez.
Valor de retorno
Um valor diferente de zero, se tiver êxito. 0, se falhar. GetLastAccessTime
retornará 0 somente se FindNextFile
nunca tiver sido chamado neste objeto CFileFind
.
Comentários
Você deve chamar FindNextFile
pelo menos uma vez, antes de chamar GetLastAccessTime
.
Observação
Nem todos os sistemas de arquivos usam a mesma semântica para implementar o carimbo de data/hora retornado por essa função. Essa função pode retornar o mesmo valor retornado por outras funções de carimbo de data/hora, se o sistema de arquivos ou servidor subjacente não permitir a manutenção do atributo de hora. Confira a estrutura WIN32_FIND_DATA
, para obter informações sobre formatos de hora. Em alguns sistemas de operação, a hora retornada está no fuso horário local para o computador, caso o arquivo esteja localizado. Confira a API FileTimeToLocalFileTime
do Win32, para obter mais informações.
Exemplo
Confira o exemplo de CFileFind::GetLength
.
CFileFind::GetLastWriteTime
Chame essa função de membro para obter a última vez que o arquivo foi alterado.
virtual BOOL GetLastWriteTime(FILETIME* pTimeStamp) const;
virtual BOOL GetLastWriteTime(CTime& refTime) const;
Parâmetros
pTimeStamp
Um ponteiro para uma estrutura FILETIME
que contém a hora em que o arquivo foi gravado pela última vez.
refTime
Uma referência a um objeto CTime
.
Valor de retorno
Um valor diferente de zero, se tiver êxito. 0, se falhar. GetLastWriteTime
retornará 0 somente se FindNextFile
nunca tiver sido chamado neste objeto CFileFind
.
Comentários
Você deve chamar FindNextFile
pelo menos uma vez, antes de chamar GetLastWriteTime
.
Observação
Nem todos os sistemas de arquivos usam a mesma semântica para implementar o carimbo de data/hora retornado por essa função. Essa função pode retornar o mesmo valor retornado por outras funções de carimbo de data/hora, se o sistema de arquivos ou servidor subjacente não permitir a manutenção do atributo de hora. Confira a estrutura WIN32_FIND_DATA
, para obter informações sobre formatos de hora. Em alguns sistemas de operação, a hora retornada está no fuso horário local para o computador, caso o arquivo esteja localizado. Confira a API FileTimeToLocalFileTime
do Win32, para obter mais informações.
Exemplo
Confira o exemplo de CFileFind::GetLength
.
CFileFind::GetLength
Chame essa função de membro para obter o tamanho do arquivo encontrado, em bytes.
ULONGLONG GetLength() const;
Valor de retorno
O tamanho do arquivo encontrado, em bytes.
Comentários
Você deve chamar FindNextFile
pelo menos uma vez, antes de chamar GetLength
.
GetLength
usa a estrutura do Win32 WIN32_FIND_DATA
para obter e retornar o valor do tamanho do arquivo, em bytes.
Observação
A partir do MFC 7.0, GetLength
dá suporte a tipos de inteiros de 64 bits. O código existente anteriormente, criado com essa versão mais recente da biblioteca, pode resultar em avisos de truncamento.
Exemplo
// 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
Chame essa função de membro para obter o raiz do arquivo encontrado.
virtual CString GetRoot() const;
Valor de retorno
A raiz da pesquisa ativa.
Comentários
Você deve chamar FindNextFile
pelo menos uma vez, antes de chamar GetRoot
.
Essa função de membro retorna o especificador da unidade e o nome do caminho usados para iniciar uma pesquisa. Por exemplo, chamar FindFile
com o *.dat
faz com que o GetRoot
retorne uma cadeia de caracteres vazia. Passar um caminho, como c:\windows\system\*.dll
, para o FindFile
faz com que o GetRoot
retorne c:\windows\system\
.
Exemplo
Confira o exemplo de CFileFind::GetFileName
.
CFileFind::IsArchived
Chame essa função de membro para determinar se o arquivo encontrado foi arquivado.
BOOL IsArchived() const;
Valor de retorno
Diferente de zero se tiver êxito; caso contrário, 0.
Comentários
Os aplicativos marcam um arquivo da camada de armazenamento de arquivos, que deve ter um backup ou ser removido, com o FILE_ATTRIBUTE_ARCHIVE
, um atributo de arquivo identificado na estrutura WIN32_FIND_DATA
.
Você deve chamar FindNextFile
pelo menos uma vez, antes de chamar IsArchived
.
Confira a função de membro MatchesMask
para obter uma lista completa de atributos de arquivo.
Exemplo
Confira o exemplo de CFileFind::GetLength
.
CFileFind::IsCompressed
Chame essa função de membro para determinar se o arquivo encontrado foi compactado.
BOOL IsCompressed() const;
Valor de retorno
Diferente de zero se tiver êxito; caso contrário, 0.
Comentários
Um arquivo compactado é marcado com o FILE_ATTRIBUTE_COMPRESSED
, um atributo de arquivo identificado na estrutura WIN32_FIND_DATA
. Para um arquivo, esse atributo indica que todos os dados no arquivo foram compactados. Para um diretório, esse atributo indica que a compactação é o padrão para arquivos e subdiretórios recém-criados.
Você deve chamar FindNextFile
pelo menos uma vez, antes de chamar IsCompressed
.
Confira a função de membro MatchesMask
para obter uma lista completa de atributos de arquivo.
Exemplo
Confira o exemplo de CFileFind::GetLength
.
CFileFind::IsDirectory
Chame essa função de membro para determinar se o arquivo encontrado é um diretório.
BOOL IsDirectory() const;
Valor de retorno
Diferente de zero se tiver êxito; caso contrário, 0.
Comentários
Um arquivo que é um diretório é marcado com o FILE_ATTRIBUTE_DIRECTORY
, um atributo de arquivo identificado na estrutura WIN32_FIND_DATA
.
Você deve chamar FindNextFile
pelo menos uma vez, antes de chamar IsDirectory
.
Confira a função de membro MatchesMask
para obter uma lista completa de atributos de arquivo.
Exemplo
Este pequeno programa recursa todos os diretórios na unidade C:\ e imprime o nome do diretório.
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
Chame essa função de membro para testar os marcadores de diretório pai e o diretório atual durante a iteração por meio de arquivos.
virtual BOOL IsDots() const;
Valor de retorno
Um valor diferente de zero, se o arquivo encontrado tiver o nome "." ou "..", o que indica que o arquivo encontrado é, na verdade, um diretório. Caso contrário, 0.
Comentários
Você deve chamar FindNextFile
pelo menos uma vez, antes de chamar IsDots
.
Exemplo
Confira o exemplo de CFileFind::IsDirectory
.
CFileFind::IsHidden
Chame essa função de membro para determinar se o arquivo encontrado está oculto.
BOOL IsHidden() const;
Valor de retorno
Diferente de zero se tiver êxito; caso contrário, 0.
Comentários
Arquivos ocultos, que são marcados com o FILE_ATTRIBUTE_HIDDEN
, um atributo de arquivo identificado na estrutura WIN32_FIND_DATA
. Um arquivo oculto não é incluído em uma listagem de diretórios comuns.
Você deve chamar FindNextFile
pelo menos uma vez, antes de chamar IsHidden
.
Confira a função de membro MatchesMask
para obter uma lista completa de atributos de arquivo.
Exemplo
Confira o exemplo de CFileFind::GetLength
.
CFileFind::IsNormal
Chame essa função de membro para determinar se o arquivo encontrado é um arquivo normal.
BOOL IsNormal() const;
Valor de retorno
Diferente de zero se tiver êxito; caso contrário, 0.
Comentários
Arquivos marcados com o FILE_ATTRIBUTE_NORMAL
, um atributo de arquivo identificado na estrutura WIN32_FIND_DATA
. Um arquivo normal não tem outros atributos definidos. Todos os outros atributos de arquivo substituem esse atributo.
Você deve chamar FindNextFile
pelo menos uma vez, antes de chamar IsNormal
.
Confira a função de membro MatchesMask
para obter uma lista completa de atributos de arquivo.
Exemplo
Confira o exemplo de CFileFind::GetLength
.
CFileFind::IsReadOnly
Chame essa função de membro para determinar se o arquivo encontrado é somente leitura.
BOOL IsReadOnly() const;
Valor de retorno
Diferente de zero se tiver êxito; caso contrário, 0.
Comentários
Um arquivo somente leitura é marcado com o FILE_ATTRIBUTE_READONLY
, um atributo de arquivo identificado na estrutura WIN32_FIND_DATA
. Os aplicativos podem ler esse arquivo, mas não podem gravá-lo nem excluí-lo.
Você deve chamar FindNextFile
pelo menos uma vez, antes de chamar IsReadOnly
.
Confira a função de membro MatchesMask
para obter uma lista completa de atributos de arquivo.
Exemplo
Confira o exemplo de CFileFind::GetLength
.
CFileFind::IsSystem
Chame essa função de membro para determinar se o arquivo encontrado é um arquivo de sistema.
BOOL IsSystem() const;
Valor de retorno
Diferente de zero se tiver êxito; caso contrário, 0.
Comentários
Um arquivo de sistema é marcado com o FILE_ATTRIBUTE_SYSTEM
, um atributo de arquivo identificado na estrutura WIN32_FIND_DATA
. Um arquivo de sistema faz parte do sistema operacional ou é usado exclusivamente pelo sistema operacional.
Você deve chamar FindNextFile
pelo menos uma vez, antes de chamar IsSystem
.
Confira a função de membro MatchesMask
para obter uma lista completa de atributos de arquivo.
Exemplo
Confira o exemplo de CFileFind::GetLength
.
CFileFind::IsTemporary
Chame essa função de membro para determinar se o arquivo encontrado é um arquivo temporário.
BOOL IsTemporary() const;
Valor de retorno
Diferente de zero se tiver êxito; caso contrário, 0.
Comentários
Um arquivo temporário é marcado com o FILE_ATTRIBUTE_TEMPORARY
, um atributo de arquivo identificado na estrutura WIN32_FIND_DATA
. Um arquivo temporário é usado para armazenamento temporário. Os aplicativos devem gravar no arquivo somente se absolutamente necessário. A maioria dos dados do arquivo permanece na memória sem ser liberada para a mídia porque o arquivo será excluído em breve.
Você deve chamar FindNextFile
pelo menos uma vez, antes de chamar IsTemporary
.
Confira a função de membro MatchesMask
para obter uma lista completa de atributos de arquivo.
Exemplo
Confira o exemplo de CFileFind::GetLength
.
CFileFind::m_pTM
Ponteiro para um objeto CAtlTransactionManager
.
CAtlTransactionManager* m_pTM;
Comentários
CFileFind::MatchesMask
Chame essa função de membro para testar os atributos de arquivo no arquivo encontrado.
virtual BOOL MatchesMask(DWORD dwMask) const;
Parâmetros
dwMask
Especifica um ou mais atributos de arquivo, identificados na estrutura WIN32_FIND_DATA
, para o arquivo encontrado. Para pesquisar vários atributos, use o operador OR (|
) bit a bit. Qualquer combinação dos seguintes atributos é aceitável:
FILE_ATTRIBUTE_ARCHIVE
O arquivo é uma camada de armazenamento de arquivos. Os aplicativos usam esse atributo para marcar arquivos para backup ou remoção.FILE_ATTRIBUTE_COMPRESSED
O arquivo ou diretório está compactado. Para um arquivo, isso significa que todos os dados no arquivo são compactados. Para um diretório, isso significa que a compactação é o padrão para arquivos e subdiretórios que acabam de ser criados.FILE_ATTRIBUTE_DIRECTORY
O arquivo é um diretório.FILE_ATTRIBUTE_NORMAL
O arquivo não tem outros atributos definidos. Este atributo é válido apenas quando usado sozinho. Todos os outros atributos de arquivo substituem esse atributo.FILE_ATTRIBUTE_HIDDEN
O arquivo está oculto. Ele não deve ser incluído em uma listagem de diretórios comuns.FILE_ATTRIBUTE_READONLY
O arquivo é somente leitura. Os aplicativos podem ler o arquivo, mas não podem gravá-lo nem excluí-lo.FILE_ATTRIBUTE_SYSTEM
O arquivo faz parte do sistema operacional ou é usado exclusivamente pelo sistema operacional.FILE_ATTRIBUTE_TEMPORARY
O arquivo está sendo usado para armazenamento temporário. Os aplicativos devem gravar no arquivo somente se absolutamente necessário. A maioria dos dados do arquivo permanece na memória sem ser liberada para a mídia porque o arquivo será excluído em breve.
Valor de retorno
Diferente de zero se tiver êxito; caso contrário, 0. Para obter outras informações sobre o erro estendido, chame a função do Win32 GetLastError
.
Comentários
Você deve chamar FindNextFile
pelo menos uma vez, antes de chamar MatchesMask
.
Exemplo
// 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());
}
}
Confira também
Classe CObject
Gráfico da hierarquia
Classe CFtpFileFind
Classe CGopherFileFind
Classe CInternetFile
Classe CGopherFile
Classe CHttpFile