Compartilhar via


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

CObject

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, chamar GetFileName para gerar uma mensagem de usuário sobre o arquivo c:\myhtml\myfile.txt retorna o nome do arquivo myfile.txt.

  • GetFilePath retorna todo o caminho do arquivo. Por exemplo, chamar GetFilePath para gerar uma mensagem de usuário sobre o arquivo c:\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, chamar GetFileTitle para gerar uma mensagem de usuário sobre o arquivo c:\myhtml\myfile.txt retorna o título do arquivo myfile.

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, chamar GetFileName para gerar uma mensagem de usuário sobre o arquivo c:\myhtml\myfile.txt retorna o nome do arquivo myfile.txt.

  • GetFilePath retorna todo o caminho do arquivo. Por exemplo, chamar GetFilePath para gerar uma mensagem de usuário sobre o arquivo c:\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, chamar GetFileTitle para gerar uma mensagem de usuário sobre o arquivo c:\myhtml\myfile.txt retorna o título do arquivo myfile.

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, chamar GetFileName para gerar uma mensagem de usuário sobre o arquivo c:\myhtml\myfile.txt retorna o nome do arquivo myfile.txt.

  • GetFilePath retorna todo o caminho do arquivo. Por exemplo, chamar GetFilePath para gerar uma mensagem de usuário sobre o arquivo c:\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, chamar GetFileTitle para gerar uma mensagem de usuário sobre o arquivo c:\myhtml\myfile.txt retorna o título do arquivo myfile.

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