Classe CFileFind

Esegue ricerche nei file locali ed è la classe base per CGopherFileFind e CFtpFileFind, che eseguono ricerche nei file Internet.

Sintassi

class CFileFind : public CObject

Membri

Costruttori pubblici

Nome Descrizione
CFileFind::CFileFind Costruisce un oggetto CFileFind.

Metodi pubblici

Nome Descrizione
CFileFind::Close Chiude la richiesta di ricerca.
CFileFind::FindFile Cerca in una directory un nome di file specificato.
CFileFind::FindNextFile Continua una ricerca di file da una chiamata precedente a FindFile.
CFileFind::GetCreationTime Ottiene l'ora di creazione del file.
CFileFind::GetFileName Ottiene il nome, inclusa l'estensione, del file trovato
CFileFind::GetFilePath Ottiene l'intero percorso del file trovato.
CFileFind::GetFileTitle Ottiene il titolo del file trovato. Il titolo non include l'estensione.
CFileFind::GetFileURL Ottiene l'URL, incluso il percorso del file trovato.
CFileFind::GetLastAccessTime Ottiene l'ora dell'ultimo accesso al file.
CFileFind::GetLastWriteTime Ottiene l'ora dell'ultima modifica e salvataggio del file.
CFileFind::GetLength Ottiene la lunghezza del file trovato, in byte.
CFileFind::GetRoot Ottiene la directory radice del file trovato.
CFileFind::IsArchived Determina se il file trovato è archiviato.
CFileFind::IsCompressed Determina se il file trovato è compresso.
CFileFind::IsDirectory Determina se il file trovato è una directory.
CFileFind::IsDots Determina se il nome del file trovato ha il nome "." o ".".", che indica che è effettivamente una directory.
CFileFind::IsHidden Determina se il file trovato è nascosto.
CFileFind::IsNormal Determina se il file trovato è normale (in altre parole, non ha altri attributi).
CFileFind::IsReadOnly Determina se il file trovato è di sola lettura.
CFileFind::IsSystem Determina se il file trovato è un file di sistema.
CFileFind::IsTemporary Determina se il file trovato è temporaneo.
CFileFind::MatchesMask Indica gli attributi di file desiderati del file da trovare.

Metodi protetti

Nome Descrizione
CFileFind::CloseContext Chiude il file specificato dall'handle di ricerca corrente.

Membri dati protetti

Nome Descrizione
CFileFind::m_pTM Puntatore a un oggetto CAtlTransactionManager.

Osservazioni:

CFileFind include funzioni membro che iniziano una ricerca, individuano un file e restituiscono il titolo, il nome o il percorso del file. Per le ricerche Internet, la funzione GetFileURL membro restituisce l'URL del file.

CFileFind è la classe base per altre due classi MFC progettate per la ricerca di tipi di server specifici: CGopherFileFind funziona in modo specifico con i server gopher e CFtpFileFind funziona in modo specifico con i server FTP. Insieme, queste tre classi forniscono un meccanismo semplice per il client per trovare i file, indipendentemente dal protocollo del server, dal tipo di file o dal percorso, in un computer locale o in un server remoto.

Il codice seguente enumererà tutti i file nella directory corrente, stampando il nome di ogni file:

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

Per semplificare l'esempio, questo codice usa la classe libreria cout standard C++. La cout riga può essere sostituita con una chiamata a CListBox::AddString, ad esempio in un programma con un'interfaccia utente grafica.

Per altre informazioni su come usare CFileFind e le altre classi WinInet, vedere l'articolo Programmazione Internet con WinInet.

Gerarchia di ereditarietà

CObject

CFileFind

Requisiti

Intestazione:afx.h

CFileFind::CFileFind

Questa funzione membro viene chiamata quando viene costruito un CFileFind oggetto .

CFileFind();
CFileFind(CAtlTransactionManager* pTM);

Parametri

pTM
Puntatore all'oggetto CAtlTransactionManager

Esempio

Vedere l'esempio per CFileFind::GetFileName.

CFileFind::Close

Chiamare questa funzione membro per terminare la ricerca, reimpostare il contesto e rilasciare tutte le risorse.

void Close();

Osservazioni:

Dopo aver chiamato Close, non è necessario creare una nuova CFileFind istanza prima di chiamare FindFile per avviare una nuova ricerca.

Esempio

Vedere l'esempio per CFileFind::GetFileName.

CFileFind::CloseContext

Chiude il file specificato dall'handle di ricerca corrente.

virtual void CloseContext();

Osservazioni:

Chiude il file specificato dal valore corrente dell'handle di ricerca. Eseguire l'override di questa funzione per modificare il comportamento predefinito.

È necessario chiamare le FindFile funzioni o FindNextFile almeno una volta per recuperare un handle di ricerca valido. Le FindFile funzioni e FindNextFile usano l'handle di ricerca per individuare i file con nomi corrispondenti a un determinato nome.

CFileFind::FindFile

Chiamare questa funzione membro per aprire una ricerca di file.

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

Parametri

pstrName
Puntatore a una stringa contenente il nome del file da trovare. Se si passa NULL per pstrName, FindFile esegue una ricerca con caratteri jolly (*.*).

dwUnused
Riservato per rendere FindFile polimorfico le classi derivate. Deve essere 0.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0. Per ottenere informazioni estese sull'errore, chiamare la funzione GetLastErrorWin32 .

Osservazioni:

Dopo aver chiamato FindFile per avviare la ricerca di file, chiamare FindNextFile per recuperare i file successivi. È necessario chiamare almeno una volta prima di chiamare FindNextFile una delle funzioni membro dell'attributo seguenti:

Esempio

Vedere l'esempio per CFileFind::IsDirectory.

CFileFind::FindNextFile

Chiamare questa funzione membro per continuare una ricerca di file da una chiamata precedente a FindFile.

virtual BOOL FindNextFile();

Valore restituito

Diverso da zero se sono presenti più file; zero se il file trovato è l'ultimo nella directory o se si è verificato un errore. Per ottenere informazioni estese sull'errore, chiamare la funzione GetLastErrorWin32 . Se il file trovato è l'ultimo file nella directory o se non è possibile trovare file corrispondenti, la GetLastError funzione restituisce ERROR_NO_MORE_FILES.

Osservazioni:

È necessario chiamare almeno una volta prima di chiamare FindNextFile una delle funzioni membro dell'attributo seguenti:

FindNextFile esegue il wrapping della funzione FindNextFileWin32 .

Esempio

Vedere l'esempio per CFileFind::IsDirectory.

CFileFind::GetCreationTime

Chiamare questa funzione membro per ottenere l'ora di creazione del file specificato.

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

Parametri

pTimeStamp
Puntatore a una FILETIME struttura contenente l'ora di creazione del file.

refTime
Riferimento a un oggetto CTime.

Valore restituito

Diverso da zero se ha esito positivo; 0 in caso di esito negativo. GetCreationTime restituisce 0 solo se FindNextFile non è mai stato chiamato su questo CFileFind oggetto.

Osservazioni:

È necessario chiamare almeno una volta prima di chiamare FindNextFileGetCreationTime.

Nota

Non tutti i file system usano la stessa semantica per implementare il timestamp restituito da questa funzione. Questa funzione può restituire lo stesso valore restituito da altre funzioni timestamp se il file system o il server sottostante non supporta la conservazione dell'attributo time. Per informazioni sui formati temporali, vedere la WIN32_FIND_DATA struttura. In alcuni sistemi operativi, l'ora restituita si trova nel fuso orario locale del computer in cui si trova il file. Per altre informazioni, vedere l'API Win32 FileTimeToLocalFileTime .

Esempio

Vedere l'esempio per CFileFind::GetLength.

CFileFind::GetFileName

Chiamare questa funzione membro per ottenere il nome del file trovato.

virtual CString GetFileName() const;

Valore restituito

Nome del file trovato più di recente.

Osservazioni:

È necessario chiamare almeno una volta prima di chiamare FindNextFile GetFileName.

GetFileName è una delle tre CFileFind funzioni membro che restituiscono una forma del nome file. L'elenco seguente descrive i tre e il modo in cui variano:

  • GetFileName restituisce il nome del file, inclusa l'estensione. Ad esempio, la chiamata GetFileName a per generare un messaggio utente sul file c:\myhtml\myfile.txt restituisce il nome myfile.txtfile .

  • GetFilePath restituisce l'intero percorso del file. Ad esempio, la chiamata GetFilePath a per generare un messaggio utente sul file c:\myhtml\myfile.txt restituisce il percorso c:\myhtml\myfile.txtdel file .

  • GetFileTitle restituisce il nome del file, escluso l'estensione del file. Ad esempio, la chiamata GetFileTitle a per generare un messaggio utente sul file c:\myhtml\myfile.txt restituisce il titolo myfiledel file .

Esempio

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

Chiamare questa funzione membro per ottenere il percorso completo del file specificato.

virtual CString GetFilePath() const;

Valore restituito

Percorso del file specificato.

Osservazioni:

È necessario chiamare almeno una volta prima di chiamare FindNextFileGetFilePath.

GetFilePath è una delle tre CFileFind funzioni membro che restituiscono una forma del nome file. L'elenco seguente descrive i tre e il modo in cui variano:

  • GetFileName restituisce il nome del file, inclusa l'estensione. Ad esempio, la chiamata GetFileName a per generare un messaggio utente sul file c:\myhtml\myfile.txt restituisce il nome myfile.txtfile .

  • GetFilePath restituisce l'intero percorso del file. Ad esempio, la chiamata GetFilePath a per generare un messaggio utente sul file c:\myhtml\myfile.txt restituisce il percorso c:\myhtml\myfile.txtdel file .

  • GetFileTitle restituisce il nome del file, escluso l'estensione del file. Ad esempio, la chiamata GetFileTitle a per generare un messaggio utente sul file c:\myhtml\myfile.txt restituisce il titolo myfiledel file .

Esempio

Vedere l'esempio per CFileFind::GetFileName.

CFileFind::GetFileTitle

Chiamare questa funzione membro per ottenere il titolo del file trovato.

virtual CString GetFileTitle() const;

Valore restituito

Titolo del file.

Osservazioni:

È necessario chiamare almeno una volta prima di chiamare FindNextFileGetFileTitle.

GetFileTitle è una delle tre CFileFind funzioni membro che restituiscono una forma del nome file. L'elenco seguente descrive i tre e il modo in cui variano:

  • GetFileName restituisce il nome del file, inclusa l'estensione. Ad esempio, la chiamata GetFileName a per generare un messaggio utente sul file c:\myhtml\myfile.txt restituisce il nome myfile.txtfile .

  • GetFilePath restituisce l'intero percorso del file. Ad esempio, la chiamata GetFilePath a per generare un messaggio utente sul file c:\myhtml\myfile.txt restituisce il percorso del file c:\myhtml\myfile.txt.

  • GetFileTitle restituisce il nome del file, escluso l'estensione del file. Ad esempio, la chiamata GetFileTitle a per generare un messaggio utente sul file c:\myhtml\myfile.txt restituisce il titolo myfiledel file .

Esempio

Vedere l'esempio per CFileFind::GetFileName.

CFileFind::GetFileURL

Chiamare questa funzione membro per recuperare l'URL specificato.

virtual CString GetFileURL() const;

Valore restituito

URL completo.

Osservazioni:

È necessario chiamare almeno una volta prima di chiamare FindNextFileGetFileURL.

GetFileURL è simile alla funzione GetFilePathmembro , ad eccezione del fatto che restituisce l'URL nel formato file://path. Ad esempio, chiamando GetFileURL per ottenere l'URL completo per myfile.txt restituisce l'URL file://c:\myhtml\myfile.txt.

Esempio

Vedere l'esempio per CFileFind::GetFileName.

CFileFind::GetLastAccessTime

Chiamare questa funzione membro per ottenere l'ora dell'ultimo accesso al file specificato.

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

Parametri

refTime
Riferimento a un oggetto CTime.

pTimeStamp
Puntatore a una FILETIME struttura contenente l'ora dell'ultimo accesso al file.

Valore restituito

Diverso da zero se ha esito positivo; 0 in caso di esito negativo. GetLastAccessTime restituisce 0 solo se FindNextFile non è mai stato chiamato su questo CFileFind oggetto.

Osservazioni:

È necessario chiamare almeno una volta prima di chiamare FindNextFileGetLastAccessTime.

Nota

Non tutti i file system usano la stessa semantica per implementare il timestamp restituito da questa funzione. Questa funzione può restituire lo stesso valore restituito da altre funzioni timestamp se il file system o il server sottostante non supporta la conservazione dell'attributo time. Per informazioni sui formati temporali, vedere la WIN32_FIND_DATA struttura. In alcuni sistemi operativi, l'ora restituita si trova nel fuso orario locale del computer in cui si trova il file. Per altre informazioni, vedere l'API Win32 FileTimeToLocalFileTime .

Esempio

Vedere l'esempio per CFileFind::GetLength.

CFileFind::GetLastWriteTime

Chiamare questa funzione membro per ottenere l'ultima volta che il file è stato modificato.

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

Parametri

pTimeStamp
Puntatore a una FILETIME struttura contenente l'ora dell'ultima scrittura del file.

refTime
Riferimento a un oggetto CTime.

Valore restituito

Diverso da zero se ha esito positivo; 0 in caso di esito negativo. GetLastWriteTime restituisce 0 solo se FindNextFile non è mai stato chiamato su questo CFileFind oggetto.

Osservazioni:

È necessario chiamare almeno una volta prima di chiamare FindNextFileGetLastWriteTime.

Nota

Non tutti i file system usano la stessa semantica per implementare il timestamp restituito da questa funzione. Questa funzione può restituire lo stesso valore restituito da altre funzioni timestamp se il file system o il server sottostante non supporta la conservazione dell'attributo time. Per informazioni sui formati temporali, vedere la WIN32_FIND_DATA struttura. In alcuni sistemi operativi, l'ora restituita si trova nel fuso orario locale del computer in cui si trova il file. Per altre informazioni, vedere l'API Win32 FileTimeToLocalFileTime .

Esempio

Vedere l'esempio per CFileFind::GetLength.

CFileFind::GetLength

Chiamare questa funzione membro per ottenere la lunghezza del file trovato, in byte.

ULONGLONG GetLength() const;

Valore restituito

Lunghezza del file trovato, in byte.

Osservazioni:

È necessario chiamare almeno una volta prima di chiamare FindNextFileGetLength.

GetLength usa la struttura WIN32_FIND_DATA Win32 per ottenere e restituire il valore delle dimensioni del file, in byte.

Nota

A partire da MFC 7.0, GetLength supporta tipi integer a 64 bit. Il codice esistente creato in precedenza con questa versione più recente della libreria può generare avvisi di troncamento.

Esempio

// 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

Chiamare questa funzione membro per ottenere la radice del file trovato.

virtual CString GetRoot() const;

Valore restituito

Radice della ricerca attiva.

Osservazioni:

È necessario chiamare almeno una volta prima di chiamare FindNextFileGetRoot.

Questa funzione membro restituisce l'identificatore di unità e il nome del percorso usati per avviare una ricerca. Ad esempio, la chiamata FindFile con *.dat comporta la GetRoot restituzione di una stringa vuota. Passaggio di un percorso, ad esempio c:\windows\system\*.dll, ai FindFile risultati GetRoot che c:\windows\system\restituiscono .

Esempio

Vedere l'esempio per CFileFind::GetFileName.

CFileFind::IsArchived

Chiamare questa funzione membro per determinare se il file trovato è archiviato.

BOOL IsArchived() const;

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

Le applicazioni contrassegnano un file di archivio, di cui eseguire il backup o la rimozione, con FILE_ATTRIBUTE_ARCHIVE, un attributo di file identificato nella WIN32_FIND_DATA struttura.

È necessario chiamare almeno una volta prima di chiamare FindNextFileIsArchived.

Per un elenco completo degli attributi di file, vedere la funzione MatchesMask membro.

Esempio

Vedere l'esempio per CFileFind::GetLength.

CFileFind::IsCompressed

Chiamare questa funzione membro per determinare se il file trovato è compresso.

BOOL IsCompressed() const;

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

Un file compresso è contrassegnato con FILE_ATTRIBUTE_COMPRESSED, un attributo di file identificato nella WIN32_FIND_DATA struttura . Per un file, questo attributo indica che tutti i dati nel file sono compressi. Per una directory, questo attributo indica che la compressione è l'impostazione predefinita per i file e le sottodirectory appena creati.

È necessario chiamare almeno una volta prima di chiamare FindNextFileIsCompressed.

Per un elenco completo degli attributi di file, vedere la funzione MatchesMask membro.

Esempio

Vedere l'esempio per CFileFind::GetLength.

CFileFind::IsDirectory

Chiamare questa funzione membro per determinare se il file trovato è una directory.

BOOL IsDirectory() const;

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

Un file che è una directory è contrassegnato con FILE_ATTRIBUTE_DIRECTORY un attributo di file identificato nella WIN32_FIND_DATA struttura.

È necessario chiamare almeno una volta prima di chiamare FindNextFileIsDirectory.

Per un elenco completo degli attributi di file, vedere la funzione MatchesMask membro.

Esempio

Questo piccolo programma ripete ogni directory nell'unità C:\ e stampa il nome della directory.

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

Chiamare questa funzione membro per verificare la directory corrente e i marcatori di directory padre durante l'iterazione dei file.

virtual BOOL IsDots() const;

Valore restituito

Diverso da zero se il file trovato ha il nome "." o ".".", che indica che il file trovato è effettivamente una directory. In caso contrario, 0

Osservazioni:

È necessario chiamare almeno una volta prima di chiamare FindNextFileIsDots.

Esempio

Vedere l'esempio per CFileFind::IsDirectory.

CFileFind::IsHidden

Chiamare questa funzione membro per determinare se il file trovato è nascosto.

BOOL IsHidden() const;

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

File nascosti, contrassegnati con FILE_ATTRIBUTE_HIDDEN, un attributo di file identificato nella WIN32_FIND_DATA struttura . Un file nascosto non è incluso in un elenco di directory normale.

È necessario chiamare almeno una volta prima di chiamare FindNextFileIsHidden.

Per un elenco completo degli attributi di file, vedere la funzione MatchesMask membro.

Esempio

Vedere l'esempio per CFileFind::GetLength.

CFileFind::IsNormal

Chiamare questa funzione membro per determinare se il file trovato è un file normale.

BOOL IsNormal() const;

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

File contrassegnati con FILE_ATTRIBUTE_NORMAL, un attributo di file identificato nella WIN32_FIND_DATA struttura . Un file normale non ha altri attributi impostati. Tutti gli altri attributi di file eseguono l'override di questo attributo.

È necessario chiamare almeno una volta prima di chiamare FindNextFileIsNormal.

Per un elenco completo degli attributi di file, vedere la funzione MatchesMask membro.

Esempio

Vedere l'esempio per CFileFind::GetLength.

CFileFind::IsReadOnly

Chiamare questa funzione membro per determinare se il file trovato è di sola lettura.

BOOL IsReadOnly() const;

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

Un file di sola lettura è contrassegnato con FILE_ATTRIBUTE_READONLY, un attributo di file identificato nella WIN32_FIND_DATA struttura . Le applicazioni possono leggere un file di questo tipo, ma non possono scriverlo o eliminarlo.

È necessario chiamare almeno una volta prima di chiamare FindNextFileIsReadOnly.

Per un elenco completo degli attributi di file, vedere la funzione MatchesMask membro.

Esempio

Vedere l'esempio per CFileFind::GetLength.

CFileFind::IsSystem

Chiamare questa funzione membro per determinare se il file trovato è un file di sistema.

BOOL IsSystem() const;

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

Un file di sistema è contrassegnato con FILE_ATTRIBUTE_SYSTEM, un attributo di file identificato nella WIN32_FIND_DATA struttura . Un file di sistema fa parte di o viene usato esclusivamente dal sistema operativo.

È necessario chiamare almeno una volta prima di chiamare FindNextFileIsSystem.

Per un elenco completo degli attributi di file, vedere la funzione MatchesMask membro.

Esempio

Vedere l'esempio per CFileFind::GetLength.

CFileFind::IsTemporary

Chiamare questa funzione membro per determinare se il file trovato è un file temporaneo.

BOOL IsTemporary() const;

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

Un file temporaneo è contrassegnato con FILE_ATTRIBUTE_TEMPORARY, un attributo di file identificato nella WIN32_FIND_DATA struttura . Un file temporaneo viene usato per l'archiviazione temporanea. Le applicazioni devono scrivere nel file solo se assolutamente necessario. La maggior parte dei dati del file rimane in memoria senza essere scaricata nel supporto perché il file verrà presto eliminato.

È necessario chiamare almeno una volta prima di chiamare FindNextFileIsTemporary.

Per un elenco completo degli attributi di file, vedere la funzione MatchesMask membro.

Esempio

Vedere l'esempio per CFileFind::GetLength.

CFileFind::m_pTM

Puntatore a un oggetto CAtlTransactionManager.

CAtlTransactionManager* m_pTM;

Osservazioni:

CFileFind::MatchesMask

Chiamare questa funzione membro per testare gli attributi del file nel file trovato.

virtual BOOL MatchesMask(DWORD dwMask) const;

Parametri

dwMask
Specifica uno o più attributi di file, identificati nella WIN32_FIND_DATA struttura, per il file trovato. Per cercare più attributi, usare l'operatore OR bit per bit (|). Qualsiasi combinazione degli attributi seguenti è accettabile:

  • FILE_ATTRIBUTE_ARCHIVE Il file è un file di archivio. Le applicazioni usano questo attributo per contrassegnare i file per il backup o la rimozione.

  • FILE_ATTRIBUTE_COMPRESSED Il file o la directory è compresso. Per un file, ciò significa che tutti i dati nel file sono compressi. Per una directory, ciò significa che la compressione è l'impostazione predefinita per i file e le sottodirectory appena creati.

  • FILE_ATTRIBUTE_DIRECTORY Il file è una directory.

  • FILE_ATTRIBUTE_NORMAL Il file non ha altri attributi impostati. Questo attributo è valido solo se usato da solo. Tutti gli altri attributi di file eseguono l'override di questo attributo.

  • FILE_ATTRIBUTE_HIDDEN Il file è nascosto. Non deve essere incluso in un elenco di directory normale.

  • FILE_ATTRIBUTE_READONLY Il file è di sola lettura. Le applicazioni possono leggere il file, ma non possono scriverlo o eliminarlo.

  • FILE_ATTRIBUTE_SYSTEM Il file fa parte di o viene utilizzato esclusivamente dal sistema operativo.

  • FILE_ATTRIBUTE_TEMPORARY Il file viene usato per l'archiviazione temporanea. Le applicazioni devono scrivere nel file solo se assolutamente necessario. La maggior parte dei dati del file rimane in memoria senza essere scaricata nel supporto perché il file verrà presto eliminato.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0. Per ottenere informazioni estese sull'errore, chiamare la funzione GetLastErrorWin32 .

Osservazioni:

È necessario chiamare almeno una volta prima di chiamare FindNextFileMatchesMask.

Esempio

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

Vedi anche

CObject Classe
Grafico della gerarchia
CFtpFileFind Classe
CGopherFileFind Classe
CInternetFile Classe
CGopherFile Classe
CHttpFile Classe