Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Classe
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:
GetFileNameretorna o nome do arquivo, incluindo a extensão. Por exemplo, chamarGetFileNamepara gerar uma mensagem de usuário sobre o arquivoc:\myhtml\myfile.txtretorna o nome do arquivomyfile.txt.GetFilePathretorna todo o caminho do arquivo. Por exemplo, chamarGetFilePathpara gerar uma mensagem de usuário sobre o arquivoc:\myhtml\myfile.txtretorna o caminho do arquivoc:\myhtml\myfile.txt.GetFileTitleretorna o nome do arquivo, excluindo a extensão de arquivo. Por exemplo, chamarGetFileTitlepara gerar uma mensagem de usuário sobre o arquivoc:\myhtml\myfile.txtretorna 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:
GetFileNameretorna o nome do arquivo, incluindo a extensão. Por exemplo, chamarGetFileNamepara gerar uma mensagem de usuário sobre o arquivoc:\myhtml\myfile.txtretorna o nome do arquivomyfile.txt.GetFilePathretorna todo o caminho do arquivo. Por exemplo, chamarGetFilePathpara gerar uma mensagem de usuário sobre o arquivoc:\myhtml\myfile.txtretorna o caminho do arquivoc:\myhtml\myfile.txt.GetFileTitle retorna o nome do arquivo, excluindo a extensão de arquivo. Por exemplo, chamar
GetFileTitlepara gerar uma mensagem de usuário sobre o arquivoc:\myhtml\myfile.txtretorna 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:
GetFileNameretorna o nome do arquivo, incluindo a extensão. Por exemplo, chamarGetFileNamepara gerar uma mensagem de usuário sobre o arquivoc:\myhtml\myfile.txtretorna o nome do arquivomyfile.txt.GetFilePathretorna todo o caminho do arquivo. Por exemplo, chamarGetFilePathpara gerar uma mensagem de usuário sobre o arquivoc:\myhtml\myfile.txtretorna o caminho do arquivo c:\myhtml\myfile.txt.GetFileTitleretorna o nome do arquivo, excluindo a extensão de arquivo. Por exemplo, chamarGetFileTitlepara gerar uma mensagem de usuário sobre o arquivoc:\myhtml\myfile.txtretorna 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_ARCHIVEO arquivo é uma camada de armazenamento de arquivos. Os aplicativos usam esse atributo para marcar arquivos para backup ou remoção.FILE_ATTRIBUTE_COMPRESSEDO 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_DIRECTORYO arquivo é um diretório.FILE_ATTRIBUTE_NORMALO 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_HIDDENO arquivo está oculto. Ele não deve ser incluído em uma listagem de diretórios comuns.FILE_ATTRIBUTE_READONLYO arquivo é somente leitura. Os aplicativos podem ler o arquivo, mas não podem gravá-lo nem excluí-lo.FILE_ATTRIBUTE_SYSTEMO arquivo faz parte do sistema operacional ou é usado exclusivamente pelo sistema operacional.FILE_ATTRIBUTE_TEMPORARYO 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