Partilhar via


CFileFind Classe

Observação

A biblioteca Microsoft Foundation Classes (MFC) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.

Realiza pesquisas locais de ficheiros e é a classe base para CGopherFileFind e CFtpFileFind, que realizam pesquisas de ficheiros na Internet.

Sintaxe

class CFileFind : public CObject

Membros

Construtores Públicos

Nome Description
CFileFind::CFileFind Constrói um CFileFind objeto.

Métodos Públicos

Nome Description
CFileFind::Close Fecha o pedido de busca.
CFileFind::FindFile Pesquisa num diretório por um nome de ficheiro especificado.
CFileFind::FindNextFile Continua a pesquisa de ficheiros de uma chamada anterior para FindFile.
CFileFind::GetCreationTime Obtém a hora em que o ficheiro foi criado.
CFileFind::GetFileName Obtém o nome, incluindo a extensão, do ficheiro encontrado
CFileFind::GetFilePath Obtém todo o percurso do ficheiro encontrado.
CFileFind::GetFileTitle Obtém o título do ficheiro encontrado. O título não inclui a extensão.
CFileFind::GetFileURL Obtém o URL, incluindo o caminho do ficheiro, do ficheiro encontrado.
CFileFind::GetLastAccessTime Obtém a hora em que o ficheiro foi acedido pela última vez.
CFileFind::GetLastWriteTime Obtém a hora em que o ficheiro foi alterado e guardado pela última vez.
CFileFind::GetLength Obtém o comprimento do ficheiro encontrado, em bytes.
CFileFind::GetRoot Obtém o diretório raiz do ficheiro encontrado.
CFileFind::IsArchived Determina se o ficheiro encontrado está arquivado.
CFileFind::IsCompressed Determina se o ficheiro encontrado está comprimido.
CFileFind::IsDirectory Determina se o ficheiro encontrado é um diretório.
CFileFind::IsDots Determina se o nome do ficheiro encontrado tem o nome "." ou "..", indicando que é na verdade um diretório.
CFileFind::IsHidden Determina se o ficheiro encontrado está oculto.
CFileFind::IsNormal Determina se o ficheiro encontrado é normal (ou seja, não tem outros atributos).
CFileFind::IsReadOnly Determina se o ficheiro encontrado é apenas leitura.
CFileFind::IsSystem Determina se o ficheiro encontrado é um ficheiro do sistema.
CFileFind::IsTemporary Determina se o ficheiro encontrado é temporário.
CFileFind::MatchesMask Indica os atributos desejados do ficheiro a encontrar.

Métodos Protegidos

Nome Description
CFileFind::CloseContext Fecha o ficheiro especificado pelo handle de pesquisa atual.

Membros de Dados Protegidos

Nome Description
CFileFind::m_pTM Aponta para um CAtlTransactionManager objeto.

Observações

CFileFind inclui funções membros que iniciam uma pesquisa, localizam um ficheiro e retornam o título, nome ou caminho do ficheiro. Para pesquisas na Internet, a função GetFileURL membro devolve o URL do ficheiro.

CFileFind é a classe base para outras duas classes MFC concebidas para pesquisar tipos específicos de servidores: CGopherFileFind funciona especificamente com servidores gopher e CFtpFileFind funciona especificamente com servidores FTP. Juntas, estas três classes fornecem um mecanismo contínuo para o cliente encontrar ficheiros, independentemente do protocolo do servidor, tipo de ficheiro ou localização, numa máquina local ou num servidor remoto.

O código seguinte enumerará todos os ficheiros no diretório atual, imprimindo o nome de cada ficheiro:

CFileFind finder;
BOOL bWorking = finder.FindFile(_T("*.*"));
while (bWorking)
{
   bWorking = finder.FindNextFile();
   TRACE(_T("%s\n"), (LPCTSTR)finder.GetFileName());
} 

Para simplificar o exemplo, este código utiliza a classe C++ Standard Library cout . A cout linha podia ser substituída por uma chamada para CListBox::AddString, por exemplo, num programa com interface gráfica.

Para mais informações sobre como usar CFileFind e as outras classes WinInet, consulte o artigo Programação na Internet com WinInet.

Hierarquia de herança

CObject

CFileFind

Requerimentos

Cabeçalho:afx.h

CFileFind::CFileFind

Esta função membro é chamada quando um CFileFind objeto é construído.

CFileFind();
CFileFind(CAtlTransactionManager* pTM);

Parâmetros

pTM
Apontador para o objeto CAtlTransactionManager

Example

Veja o exemplo para CFileFind::GetFileName.

CFileFind::Close

Chame esta função membro para terminar a pesquisa, reiniciar o contexto e libertar todos os recursos.

void Close();

Observações

Depois de ligar Close, não precisa de criar uma nova CFileFind instância antes de ligar FindFile para iniciar uma nova pesquisa.

Example

Veja o exemplo para CFileFind::GetFileName.

CFileFind::CloseContext

Fecha o ficheiro especificado pelo handle de pesquisa atual.

virtual void CloseContext();

Observações

Fecha o ficheiro especificado pelo valor atual do handle de pesquisa. Substitua esta função para alterar o comportamento padrão.

Deve chamar as FindFile funções ou FindNextFile pelo menos uma vez para obter um handle de pesquisa válido. As FindFile funções e FindNextFile usam o handle de pesquisa para localizar ficheiros com nomes que correspondem a um nome próprio.

CFileFind::FindFile

Chama esta função membro para abrir uma pesquisa de ficheiros.

virtual BOOL FindFile(
    LPCTSTR pstrName = NULL,
    DWORD dwUnused = 0);

Parâmetros

pstrName
Um ponteiro para uma string contendo o nome do ficheiro a encontrar. Se passar NULL por pstrName, FindFile faz uma pesquisa coringa (*.*).

dwUnused
Reservado para tornar FindFile polimórfico com classes derivadas. Deve ser 0.

Valor de retorno

Não nulo se for bem-sucedido; caso contrário, 0. Para obter informação de erro alargada, chame a função GetLastErrorWin32 .

Observações

Depois de ligar FindFile para iniciar a pesquisa de ficheiros, ligue FindNextFile para recuperar os ficheiros seguintes. Deve chamar FindNextFile pelo menos uma vez antes de chamar qualquer uma das seguintes funções membros de atributo:

Example

Veja o exemplo para CFileFind::IsDirectory.

CFileFind::FindNextFile

Chame esta função membro para continuar uma pesquisa de ficheiro de uma chamada anterior para FindFile.

virtual BOOL FindNextFile();

Valor de retorno

Não nulo se houver mais ficheiros; zero se o ficheiro encontrado for o último no diretório ou se ocorreu um erro. Para obter informação de erro alargada, chame a função GetLastErrorWin32 . Se o ficheiro encontrado for o último do diretório, ou se não forem encontrados ficheiros correspondentes, a GetLastError função devolve ERROR_NO_MORE_FILES.

Observações

Deve chamar FindNextFile pelo menos uma vez antes de chamar qualquer uma das seguintes funções membros de atributo:

FindNextFile envolve a função FindNextFileWin32 .

Example

Veja o exemplo para CFileFind::IsDirectory.

CFileFind::GetCreationTime

Chame esta função membro para obter a hora em que o ficheiro especificado foi criado.

virtual BOOL GetCreationTime(FILETIME* pTimeStamp) const;
virtual BOOL GetCreationTime(CTime& refTime) const;

Parâmetros

pTimeStamp
Um ponteiro para uma FILETIME estrutura que contém o tempo em que o ficheiro foi criado.

refTime
Uma referência a um objeto CTime.

Valor de retorno

Não nulo se for bem-sucedido; 0 se não for bem-sucedido. GetCreationTime retorna 0 apenas se FindNextFile nunca foi chamado a este CFileFind objeto.

Observações

Deve ligar FindNextFile pelo menos uma vez antes de ligar GetCreationTime.

Observação

Nem todos os sistemas de ficheiros usam a mesma semântica para implementar o carimbo temporal devolvido por esta função. Esta função pode devolver o mesmo valor devolvido por outras funções de carimbo temporal se o sistema de ficheiros subjacente ou servidor não suportar a manutenção do atributo tempo. Consulte a WIN32_FIND_DATA estrutura para informações sobre formatos temporais. Em alguns sistemas operativos, a hora devolvida está no fuso horário local da máquina onde o ficheiro está localizado. Consulte a API do Win32 FileTimeToLocalFileTime para mais informações.

Example

Veja o exemplo para CFileFind::GetLength.

CFileFind::GetFileName

Chame esta função membro para obter o nome do ficheiro encontrado.

virtual CString GetFileName() const;

Valor de retorno

O nome do ficheiro mais recentemente encontrado.

Observações

Deve ligar FindNextFile pelo menos uma vez antes de ligar para o GetFileName.

GetFileName é uma das três CFileFind funções membros que retornam alguma forma do nome do ficheiro. A lista seguinte descreve os três e como eles variam:

  • GetFileName devolve o nome do ficheiro, incluindo a extensão. Por exemplo, ao ligar GetFileName para gerar uma mensagem de utilizador sobre o ficheiro c:\myhtml\myfile.txt , devolve o nome myfile.txtdo ficheiro .

  • GetFilePath devolve todo o caminho do ficheiro. Por exemplo, ao chamar GetFilePath para gerar uma mensagem de utilizador sobre o ficheiro c:\myhtml\myfile.txt devolve o caminho c:\myhtml\myfile.txtdo ficheiro .

  • GetFileTitle devolve o nome do ficheiro, excluindo a extensão do ficheiro. Por exemplo, ao chamar GetFileTitle para gerar uma mensagem de utilizador sobre o ficheiro c:\myhtml\myfile.txt devolve o título myfiledo ficheiro .

Example

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 esta função membro para obter o caminho completo do ficheiro especificado.

virtual CString GetFilePath() const;

Valor de retorno

O caminho do ficheiro especificado.

Observações

Deve ligar FindNextFile pelo menos uma vez antes de ligar GetFilePath.

GetFilePath é uma das três CFileFind funções membros que retornam alguma forma do nome do ficheiro. A lista seguinte descreve os três e como eles variam:

  • GetFileName devolve o nome do ficheiro, incluindo a extensão. Por exemplo, ao ligar GetFileName para gerar uma mensagem de utilizador sobre o ficheiro c:\myhtml\myfile.txt , devolve o nome myfile.txtdo ficheiro .

  • GetFilePath devolve todo o caminho do ficheiro. Por exemplo, ao chamar GetFilePath para gerar uma mensagem de utilizador sobre o ficheiro c:\myhtml\myfile.txt devolve o caminho c:\myhtml\myfile.txtdo ficheiro .

  • GetFileTitle devolve o nome do ficheiro, excluindo a extensão do ficheiro. Por exemplo, ao chamar GetFileTitle para gerar uma mensagem de utilizador sobre o ficheiro c:\myhtml\myfile.txt devolve o título myfiledo ficheiro .

Example

Veja o exemplo para CFileFind::GetFileName.

CFileFind::GetFileTitle

Chame esta função de membro para obter o título do ficheiro encontrado.

virtual CString GetFileTitle() const;

Valor de retorno

O título do ficheiro.

Observações

Deve ligar FindNextFile pelo menos uma vez antes de ligar GetFileTitle.

GetFileTitle é uma das três CFileFind funções membros que retornam alguma forma do nome do ficheiro. A lista seguinte descreve os três e como eles variam:

  • GetFileName devolve o nome do ficheiro, incluindo a extensão. Por exemplo, ao ligar GetFileName para gerar uma mensagem de utilizador sobre o ficheiro c:\myhtml\myfile.txt , devolve o nome myfile.txtdo ficheiro .

  • GetFilePath devolve todo o caminho do ficheiro. Por exemplo, chamar GetFilePath para gerar uma mensagem de utilizador sobre o ficheiro c:\myhtml\myfile.txt retorna o caminho do ficheiro c:\myhtml\myfile.txt.

  • GetFileTitle devolve o nome do ficheiro, excluindo a extensão do ficheiro. Por exemplo, ao chamar GetFileTitle para gerar uma mensagem de utilizador sobre o ficheiro c:\myhtml\myfile.txt devolve o título myfiledo ficheiro .

Example

Veja o exemplo para CFileFind::GetFileName.

CFileFind::GetFileURL

Chame esta função membro para recuperar a URL especificada.

virtual CString GetFileURL() const;

Valor de retorno

A URL completa.

Observações

Deve ligar FindNextFile pelo menos uma vez antes de ligar GetFileURL.

GetFileURL é semelhante à função GetFilePathmembro , exceto que devolve a URL na forma file://path. Por exemplo, chamar GetFileURL para obter o URL completo para myfile.txt devolve o URL file://c:\myhtml\myfile.txt.

Example

Veja o exemplo para CFileFind::GetFileName.

CFileFind::GetLastAccessTime

Chame esta função membro para obter a data em que o ficheiro especificado foi acedido 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 FILETIME estrutura que contém a última vez que o ficheiro foi acedido.

Valor de retorno

Não nulo se for bem-sucedido; 0 se não for bem-sucedido. GetLastAccessTime retorna 0 apenas se FindNextFile nunca foi chamado a este CFileFind objeto.

Observações

Deve ligar FindNextFile pelo menos uma vez antes de ligar GetLastAccessTime.

Observação

Nem todos os sistemas de ficheiros usam a mesma semântica para implementar o carimbo temporal devolvido por esta função. Esta função pode devolver o mesmo valor devolvido por outras funções de carimbo temporal se o sistema de ficheiros subjacente ou servidor não suportar a manutenção do atributo tempo. Consulte a WIN32_FIND_DATA estrutura para informações sobre formatos temporais. Em alguns sistemas operativos, a hora devolvida está no fuso horário local da máquina onde o ficheiro está localizado. Consulte a API do Win32 FileTimeToLocalFileTime para mais informações.

Example

Veja o exemplo para CFileFind::GetLength.

CFileFind::GetLastWriteTime

Chame esta função membro para obter a última vez que o ficheiro foi alterado.

virtual BOOL GetLastWriteTime(FILETIME* pTimeStamp) const;
virtual BOOL GetLastWriteTime(CTime& refTime) const;

Parâmetros

pTimeStamp
Um ponteiro para uma FILETIME estrutura que contém a última vez em que o ficheiro foi escrito.

refTime
Uma referência a um objeto CTime.

Valor de retorno

Não nulo se for bem-sucedido; 0 se não for bem-sucedido. GetLastWriteTime retorna 0 apenas se FindNextFile nunca foi chamado a este CFileFind objeto.

Observações

Deve ligar FindNextFile pelo menos uma vez antes de ligar GetLastWriteTime.

Observação

Nem todos os sistemas de ficheiros usam a mesma semântica para implementar o carimbo temporal devolvido por esta função. Esta função pode devolver o mesmo valor devolvido por outras funções de carimbo temporal se o sistema de ficheiros subjacente ou servidor não suportar a manutenção do atributo tempo. Consulte a WIN32_FIND_DATA estrutura para informações sobre formatos temporais. Em alguns sistemas operativos, a hora devolvida está no fuso horário local da máquina onde o ficheiro está localizado. Consulte a API do Win32 FileTimeToLocalFileTime para mais informações.

Example

Veja o exemplo para CFileFind::GetLength.

CFileFind::GetLength

Chame esta função membro para obter o comprimento do ficheiro encontrado, em bytes.

ULONGLONG GetLength() const;

Valor de retorno

O comprimento do ficheiro encontrado, em bytes.

Observações

Deve ligar FindNextFile pelo menos uma vez antes de ligar GetLength.

GetLength usa a estrutura WIN32_FIND_DATA Win32 para obter e devolver o valor do tamanho do ficheiro, em bytes.

Observação

A partir do MFC 7.0, GetLength suporta tipos inteiros de 64 bits. Código anteriormente existente, construído com esta versão mais recente da biblioteca, pode resultar em avisos de truncamento.

Example

// 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 esta função membro para obter a raiz do ficheiro encontrado.

virtual CString GetRoot() const;

Valor de retorno

A raiz da pesquisa ativa.

Observações

Deve ligar FindNextFile pelo menos uma vez antes de ligar GetRoot.

Esta função membro devolve o especificador da unidade e o nome do caminho usados para iniciar uma pesquisa. Por exemplo, chamar FindFile com *.dat resulta em GetRoot devolver uma cadeia vazia. Passar um caminho, como c:\windows\system\*.dll, para FindFile resultados, GetRoot retorna c:\windows\system\.

Example

Veja o exemplo para CFileFind::GetFileName.

CFileFind::IsArchived

Chame esta função membro para determinar se o ficheiro encontrado está arquivado.

BOOL IsArchived() const;

Valor de retorno

Não nulo se for bem-sucedido; caso contrário, 0.

Observações

As aplicações marcam um ficheiro de arquivo, que deve ser feito backup ou removido, com FILE_ATTRIBUTE_ARCHIVE, um atributo de ficheiro identificado na WIN32_FIND_DATA estrutura.

Deve ligar FindNextFile pelo menos uma vez antes de ligar IsArchived.

Consulte a função MatchesMask membro para uma lista completa dos atributos do ficheiro.

Example

Veja o exemplo para CFileFind::GetLength.

CFileFind::IsCompressed

Chame esta função membro para determinar se o ficheiro encontrado está comprimido.

BOOL IsCompressed() const;

Valor de retorno

Não nulo se for bem-sucedido; caso contrário, 0.

Observações

Um ficheiro comprimido é marcado com FILE_ATTRIBUTE_COMPRESSED, um atributo de ficheiro identificado na WIN32_FIND_DATA estrutura. Para um ficheiro, este atributo indica que todos os dados do ficheiro estão comprimidos. Para um diretório, este atributo indica que a compressão é o padrão para ficheiros e subdiretórios recém-criados.

Deve ligar FindNextFile pelo menos uma vez antes de ligar IsCompressed.

Consulte a função MatchesMask membro para uma lista completa dos atributos do ficheiro.

Example

Veja o exemplo para CFileFind::GetLength.

CFileFind::IsDirectory

Chame esta função membro para determinar se o ficheiro encontrado é um diretório.

BOOL IsDirectory() const;

Valor de retorno

Não nulo se for bem-sucedido; caso contrário, 0.

Observações

Um ficheiro que é um diretório é marcado com FILE_ATTRIBUTE_DIRECTORY um atributo de ficheiro identificado na WIN32_FIND_DATA estrutura.

Deve ligar FindNextFile pelo menos uma vez antes de ligar IsDirectory.

Consulte a função MatchesMask membro para uma lista completa dos atributos do ficheiro.

Example

Este pequeno programa recorre 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 esta função membro para testar o diretório atual e os marcadores do diretório pai enquanto itera através dos ficheiros.

virtual BOOL IsDots() const;

Valor de retorno

Diferente de zero se o ficheiro encontrado tiver o nome "." ou "..", o que indica que o ficheiro encontrado é na verdade um diretório. Caso contrário, 0.

Observações

Deve ligar FindNextFile pelo menos uma vez antes de ligar IsDots.

Example

Veja o exemplo para CFileFind::IsDirectory.

CFileFind::IsHidden

Chame esta função membro para determinar se o ficheiro encontrado está oculto.

BOOL IsHidden() const;

Valor de retorno

Não nulo se for bem-sucedido; caso contrário, 0.

Observações

Ficheiros ocultos, que são marcados com FILE_ATTRIBUTE_HIDDEN, um atributo de ficheiro identificado na WIN32_FIND_DATA estrutura. Um ficheiro oculto não está incluído numa lista de diretórios comum.

Deve ligar FindNextFile pelo menos uma vez antes de ligar IsHidden.

Consulte a função MatchesMask membro para uma lista completa dos atributos do ficheiro.

Example

Veja o exemplo para CFileFind::GetLength.

CFileFind::IsNormal

Chame esta função membro para determinar se o ficheiro encontrado é um ficheiro normal.

BOOL IsNormal() const;

Valor de retorno

Não nulo se for bem-sucedido; caso contrário, 0.

Observações

Ficheiros marcados com FILE_ATTRIBUTE_NORMAL, um atributo de ficheiro identificado na WIN32_FIND_DATA estrutura. Um ficheiro normal não tem outros atributos definidos. Todos os outros atributos do ficheiro sobrepõem-se a este atributo.

Deve ligar FindNextFile pelo menos uma vez antes de ligar IsNormal.

Consulte a função MatchesMask membro para uma lista completa dos atributos do ficheiro.

Example

Veja o exemplo para CFileFind::GetLength.

CFileFind::IsReadOnly

Chame esta função membro para determinar se o ficheiro encontrado é só de leitura.

BOOL IsReadOnly() const;

Valor de retorno

Não nulo se for bem-sucedido; caso contrário, 0.

Observações

Um ficheiro de apenas leitura é marcado com FILE_ATTRIBUTE_READONLY, um atributo de ficheiro identificado na WIN32_FIND_DATA estrutura. As aplicações podem ler tal ficheiro, mas não podem escrever nele nem apagá-lo.

Deve ligar FindNextFile pelo menos uma vez antes de ligar IsReadOnly.

Consulte a função MatchesMask membro para uma lista completa dos atributos do ficheiro.

Example

Veja o exemplo para CFileFind::GetLength.

CFileFind::IsSystem

Chame esta função membro para determinar se o ficheiro encontrado é um ficheiro do sistema.

BOOL IsSystem() const;

Valor de retorno

Não nulo se for bem-sucedido; caso contrário, 0.

Observações

Um ficheiro de sistema é marcado com FILE_ATTRIBUTE_SYSTEM, um atributo de ficheiro identificado na WIN32_FIND_DATA estrutura. Um ficheiro de sistema faz parte, ou é usado exclusivamente pelo sistema operativo.

Deve ligar FindNextFile pelo menos uma vez antes de ligar IsSystem.

Consulte a função MatchesMask membro para uma lista completa dos atributos do ficheiro.

Example

Veja o exemplo para CFileFind::GetLength.

CFileFind::IsTemporary

Chame esta função membro para determinar se o ficheiro encontrado é temporário.

BOOL IsTemporary() const;

Valor de retorno

Não nulo se for bem-sucedido; caso contrário, 0.

Observações

Um ficheiro temporário é marcado com FILE_ATTRIBUTE_TEMPORARY, um atributo de ficheiro identificado na WIN32_FIND_DATA estrutura. Um ficheiro temporário é usado para armazenamento temporário. As aplicações devem escrever no ficheiro apenas se for absolutamente necessário. A maior parte dos dados do ficheiro permanece na memória sem ser esvaziada para o suporte, pois o ficheiro será rapidamente eliminado.

Deve ligar FindNextFile pelo menos uma vez antes de ligar IsTemporary.

Consulte a função MatchesMask membro para uma lista completa dos atributos do ficheiro.

Example

Veja o exemplo para CFileFind::GetLength.

CFileFind::m_pTM

Aponta para um CAtlTransactionManager objeto.

CAtlTransactionManager* m_pTM;

Observações

CFileFind::MatchesMask

Chame esta função membro para testar os atributos do ficheiro no ficheiro encontrado.

virtual BOOL MatchesMask(DWORD dwMask) const;

Parâmetros

dwMask
Especifica um ou mais atributos do ficheiro, identificados na WIN32_FIND_DATA estrutura, para o ficheiro encontrado. Para procurar múltiplos atributos, use o operador bit a bit OR (|). Qualquer combinação dos seguintes atributos é aceitável:

  • FILE_ATTRIBUTE_ARCHIVE O ficheiro é um arquivo de arquivo. As aplicações usam este atributo para marcar ficheiros para backup ou remoção.

  • FILE_ATTRIBUTE_COMPRESSED O ficheiro ou diretório é comprimido. Para um ficheiro, isto significa que todos os dados do ficheiro são comprimidos. Para um diretório, isto significa que a compressão é o padrão para ficheiros e subdiretórios recém-criados.

  • FILE_ATTRIBUTE_DIRECTORY O ficheiro é um diretório.

  • FILE_ATTRIBUTE_NORMAL O ficheiro não tem outros atributos definidos. Este atributo é válido apenas se usado isoladamente. Todos os outros atributos do ficheiro sobrepõem-se a este atributo.

  • FILE_ATTRIBUTE_HIDDEN O ficheiro está escondido. Não deve ser incluído numa lista de diretórios comum.

  • FILE_ATTRIBUTE_READONLY O ficheiro é apenas de leitura. As aplicações podem ler o ficheiro, mas não podem escrever nele nem apagá-lo.

  • FILE_ATTRIBUTE_SYSTEM O ficheiro faz parte ou é usado exclusivamente pelo sistema operativo.

  • FILE_ATTRIBUTE_TEMPORARY O ficheiro está a ser usado para armazenamento temporário. As aplicações devem escrever no ficheiro apenas se for absolutamente necessário. A maior parte dos dados do ficheiro permanece na memória sem ser esvaziada para o suporte, pois o ficheiro será rapidamente eliminado.

Valor de retorno

Não nulo se for bem-sucedido; caso contrário, 0. Para obter informação de erro alargada, chame a função GetLastErrorWin32 .

Observações

Deve ligar FindNextFile pelo menos uma vez antes de ligar MatchesMask.

Example

// 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());
   }
}

Consulte também

CObject Classe
Gráfico de Hierarquia
CFtpFileFind Classe
CGopherFileFind Classe
CInternetFile Classe
CGopherFile Classe
CHttpFile Classe