CFileFind クラス

ローカル ファイル検索を実行し、インターネット ファイル検索を CGopherFileFind 実行する基底クラスおよび CFtpFileFind基本クラスです。

構文

class CFileFind : public CObject

メンバー

パブリック コンストラクター

名前 説明
CFileFind::CFileFind CFileFind オブジェクトを構築します。

パブリック メソッド

名前 説明
CFileFind::Close 検索要求を閉じます。
CFileFind::FindFile ディレクトリで指定したファイル名を検索します。
CFileFind::FindNextFile 前の呼び出しからファイル検索を続行します FindFile
CFileFind::GetCreationTime ファイルが作成された時刻を取得します。
CFileFind::GetFileName 見つかったファイルの拡張子を含む名前を取得します。
CFileFind::GetFilePath 見つかったファイルのパス全体を取得します。
CFileFind::GetFileTitle 見つかったファイルのタイトルを取得します。 タイトルには拡張機能は含まれません。
CFileFind::GetFileURL 見つかったファイルの URL (ファイル パスを含む) を取得します。
CFileFind::GetLastAccessTime ファイルが最後にアクセスされた時刻を取得します。
CFileFind::GetLastWriteTime ファイルが最後に変更されて保存された時刻を取得します。
CFileFind::GetLength 見つかったファイルの長さをバイト単位で取得します。
CFileFind::GetRoot 見つかったファイルのルート ディレクトリを取得します。
CFileFind::IsArchived 見つかったファイルがアーカイブされているかどうかを判断します。
CFileFind::IsCompressed 見つかったファイルが圧縮されているかどうかを判断します。
CFileFind::IsDirectory 見つかったファイルがディレクトリであるかどうかを判断します。
CFileFind::IsDots 見つかったファイルの名前に "." または ".." という名前があるかどうかを判断します。これは、実際にディレクトリであることを示します。
CFileFind::IsHidden 見つかったファイルが非表示かどうかを判断します。
CFileFind::IsNormal 見つかったファイルが正常かどうかを判断します (つまり、他の属性はありません)。
CFileFind::IsReadOnly 見つかったファイルが読み取り専用かどうかを判断します。
CFileFind::IsSystem 見つかったファイルがシステム ファイルかどうかを判断します。
CFileFind::IsTemporary 見つかったファイルが一時的であるかどうかを判断します。
CFileFind::MatchesMask 見つかるファイルの目的のファイル属性を示します。

保護メソッド

名前 説明
CFileFind::CloseContext 現在の検索ハンドルで指定されたファイルを閉じます。

プロテクト データ メンバー

名前 説明
CFileFind::m_pTM CAtlTransactionManager オブジェクトを指すポインター。

解説

CFileFind には、検索を開始し、ファイルを検索し、ファイルのタイトル、名前、またはパスを返すメンバー関数が含まれています。 インターネット検索の場合、メンバー関数 GetFileURL はファイルの URL を返します。

CFileFind は、特定のサーバーの種類 CGopherFileFind を検索するように設計された他の 2 つの MFC クラスの基本クラスです。特に gopher サーバーで動作し CFtpFileFind 、FTP サーバーで特に機能します。 これら 3 つのクラスを組み合わせることで、ローカル コンピューターまたはリモート サーバー上のサーバー プロトコル、ファイルの種類、場所に関係なく、クライアントがファイルを検索するためのシームレスなメカニズムが提供されます。

次のコードは、現在のディレクトリ内のすべてのファイルを列挙し、各ファイルの名前を出力します。

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

この例をシンプルにするために、このコードでは C++ 標準ライブラリ cout クラスを使用します。 この行は cout 、たとえば、グラフィカル ユーザー インターフェイスを使用する CListBox::AddStringプログラムでの呼び出しに置き換えることができます。

使用方法とその他の WinInet クラスの詳細については、WinInet を使用CFileFindしたインターネット プログラミングに関する記事を参照してください。

継承階層

CObject

CFileFind

必要条件

ヘッダー:afx.h

CFileFind::CFileFind

このメンバー関数は、オブジェクトが CFileFind 構築されるときに呼び出されます。

CFileFind();
CFileFind(CAtlTransactionManager* pTM);

パラメーター

pTM
CAtlTransactionManager オブジェクトへのポインター。

CFileFind::GetFileName の例を参照してください。

CFileFind::Close

このメンバー関数を呼び出して検索を終了し、コンテキストをリセットし、すべてのリソースを解放します。

void Close();

解説

呼び出し後、新しい検索を開始するために呼び出CloseFindFile前に新CFileFindしいインスタンスを作成する必要はありません。

CFileFind::GetFileName の例を参照してください。

CFileFind::CloseContext

現在の検索ハンドルで指定されたファイルを閉じます。

virtual void CloseContext();

解説

検索ハンドルの現在の値で指定されたファイルを閉じます。 既定の動作を変更するには、この関数をオーバーライドします。

有効な検索ハンドルを取得するには、 FindFile 少なくとも 1 回は FindNextFile 関数を呼び出す必要があります。 およびFindNextFile関数はFindFile、検索ハンドルを使用して、指定された名前と一致する名前のファイルを検索します。

CFileFind::FindFile

ファイル検索を開くには、このメンバー関数を呼び出します。

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

パラメーター

pstrName
検索するファイルの名前を含む文字列へのポインター。 渡NULLpstrNameした場合、FindFile野生のカード (*.*) 検索が実行されます。

dwUnused
派生クラスでポリモーフィックにするために FindFile 予約されています。 0 を指定する必要があります。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。 拡張エラー情報を取得するには、Win32 関数 GetLastErrorを呼び出します。

解説

呼び出して FindFile ファイル検索を開始した後、呼び出 FindNextFile して後続のファイルを取得します。 次のいずれかの属性メンバー関数を呼び出 FindNextFile す前に、少なくとも 1 回呼び出す必要があります。

CFileFind::IsDirectory の例を参照してください。

CFileFind::FindNextFile

前の呼び出しからファイル検索を続行するには、このメンバー関数を呼び出します FindFile

virtual BOOL FindNextFile();

戻り値

その他のファイルがある場合は 0 以外。見つかったファイルがディレクトリ内の最後のファイルであるか、エラーが発生した場合は 0。 拡張エラー情報を取得するには、Win32 関数 GetLastErrorを呼び出します。 見つかったファイルがディレクトリ内の最後のファイルである場合、または一致するファイルが見つからない場合、GetLastError関数は .ERROR_NO_MORE_FILES

解説

次のいずれかの属性メンバー関数を呼び出 FindNextFile す前に、少なくとも 1 回呼び出す必要があります。

FindNextFile によって Win32 FindNextFile 関数がラップされます。

CFileFind::IsDirectory の例を参照してください。

CFileFind::GetCreationTime

指定したファイルが作成された時刻を取得するには、このメンバー関数を呼び出します。

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

パラメーター

pTimeStamp
ファイルが FILETIME 作成された時刻を含む構造体へのポインター。

refTime
CTime オブジェクトへの参照です。

戻り値

成功した場合は 0 以外。失敗した場合は 0。 GetCreationTimeは、このCFileFindオブジェクトで呼び出されたことがない場合FindNextFileにのみ 0 を返します。

解説

呼び出す前に少なくとも 1 回呼び出 FindNextFileGetCreationTime必要があります。

Note

すべてのファイル システムで同じセマンティクスを使用して、この関数によって返されるタイム スタンプを実装するわけではありません。 基になるファイル システムまたはサーバーが time 属性の保持をサポートしていない場合、この関数は他のタイム スタンプ関数から返されるのと同じ値を返す場合があります。 時刻形式については、 WIN32_FIND_DATA 構造を参照してください。 一部のオペレーティング システムでは、返される時刻は、ファイルが配置されていたコンピューターにローカルなタイム ゾーンにあります。 詳細については、Win32 FileTimeToLocalFileTime API を参照してください。

CFileFind::GetLength の例を参照してください。

CFileFind::GetFileName

このメンバー関数を呼び出して、見つかったファイルの名前を取得します。

virtual CString GetFileName() const;

戻り値

最近見つかったファイルの名前。

解説

GetFileName を呼び出す FindNextFile 前に、少なくとも 1 回呼び出す必要があります。

GetFileName は、何らかの形式のファイル名を返す 3 つの CFileFind メンバー関数の 1 つです。 次の一覧では、3 つとその違いについて説明します。

  • GetFileName は拡張子を含むファイル名を返します。 たとえば、ファイルに関するユーザー メッセージを生成するために呼び出すと GetFileName 、ファイル c:\myhtml\myfile.txt 名が返されます myfile.txt

  • GetFilePath は、ファイルのパス全体を返します。 たとえば、ファイルに関するユーザー メッセージを生成するために呼び出すと GetFilePath 、ファイル c:\myhtml\myfile.txt パス c:\myhtml\myfile.txtが返されます。

  • GetFileTitle は、ファイル拡張子を除くファイル名を返します。 たとえば、ファイルに関するユーザー メッセージを生成するために呼び出すと GetFileTitle 、ファイル c:\myhtml\myfile.txt タイトルが返されます myfile

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

このメンバー関数を呼び出して、指定したファイルの完全なパスを取得します。

virtual CString GetFilePath() const;

戻り値

指定したファイルのパス。

解説

呼び出す前に少なくとも 1 回呼び出 FindNextFileGetFilePath必要があります。

GetFilePath は、何らかの形式のファイル名を返す 3 つの CFileFind メンバー関数の 1 つです。 次の一覧では、3 つとその違いについて説明します。

  • GetFileName は拡張子を含むファイル名を返します。 たとえば、ファイルに関するユーザー メッセージを生成するために呼び出すと GetFileName 、ファイル c:\myhtml\myfile.txt 名が返されます myfile.txt

  • GetFilePath は、ファイルのパス全体を返します。 たとえば、ファイルに関するユーザー メッセージを生成するために呼び出すと GetFilePath 、ファイル c:\myhtml\myfile.txt パス c:\myhtml\myfile.txtが返されます。

  • GetFileTitle は、ファイル拡張子を除くファイル名を返します。 たとえば、ファイルに関するユーザー メッセージを生成するために呼び出すと GetFileTitle 、ファイル c:\myhtml\myfile.txt タイトルが返されます myfile

CFileFind::GetFileName の例を参照してください。

CFileFind::GetFileTitle

このメンバー関数を呼び出して、見つかったファイルのタイトルを取得します。

virtual CString GetFileTitle() const;

戻り値

ファイルのタイトルです。

解説

呼び出す前に少なくとも 1 回呼び出 FindNextFileGetFileTitle必要があります。

GetFileTitle は、何らかの形式のファイル名を返す 3 つの CFileFind メンバー関数の 1 つです。 次の一覧では、3 つとその違いについて説明します。

  • GetFileName は拡張子を含むファイル名を返します。 たとえば、ファイルに関するユーザー メッセージを生成するために呼び出すと GetFileName 、ファイル c:\myhtml\myfile.txt 名が返されます myfile.txt

  • GetFilePath は、ファイルのパス全体を返します。 たとえば、ファイルに関するユーザー メッセージを生成するために呼び出すと GetFilePath 、ファイル c:\myhtml\myfile.txt パス c:\myhtml\myfile.txt が返されます

  • GetFileTitle は、ファイル拡張子を除くファイル名を返します。 たとえば、ファイルに関するユーザー メッセージを生成するために呼び出すと GetFileTitle 、ファイル c:\myhtml\myfile.txt タイトルが返されます myfile

CFileFind::GetFileName の例を参照してください。

CFileFind::GetFileURL

このメンバー関数を呼び出して、指定した URL を取得します。

virtual CString GetFileURL() const;

戻り値

完全な URL。

解説

呼び出す前に少なくとも 1 回呼び出 FindNextFileGetFileURL必要があります。

GetFileURL はメンバー関数 GetFilePathに似ていますが、形式で URL を返す点が異なります file://path。 たとえば、完全な URL を取得するために呼び出すとGetFileURL、URL file://c:\myhtml\myfile.txtmyfile.txt が返されます。

CFileFind::GetFileName の例を参照してください。

CFileFind::GetLastAccessTime

指定したファイルが最後にアクセスされた時刻を取得するには、このメンバー関数を呼び出します。

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

パラメーター

refTime
CTime オブジェクトへの参照です。

pTimeStamp
ファイルが FILETIME 最後にアクセスされた時刻を含む構造体へのポインター。

戻り値

成功した場合は 0 以外。失敗した場合は 0。 GetLastAccessTimeは、このCFileFindオブジェクトで呼び出されたことがない場合FindNextFileにのみ 0 を返します。

解説

呼び出す前に少なくとも 1 回呼び出 FindNextFileGetLastAccessTime必要があります。

Note

すべてのファイル システムで同じセマンティクスを使用して、この関数によって返されるタイム スタンプを実装するわけではありません。 基になるファイル システムまたはサーバーが time 属性の保持をサポートしていない場合、この関数は他のタイム スタンプ関数から返されるのと同じ値を返す場合があります。 時刻形式については、 WIN32_FIND_DATA 構造を参照してください。 一部のオペレーティング システムでは、返される時刻は、ファイルが配置されていたコンピューターにローカルなタイム ゾーンにあります。 詳細については、Win32 FileTimeToLocalFileTime API を参照してください。

CFileFind::GetLength の例を参照してください。

CFileFind::GetLastWriteTime

このメンバー関数を呼び出して、ファイルが最後に変更された時刻を取得します。

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

パラメーター

pTimeStamp
ファイルが FILETIME 最後に書き込まれた時刻を含む構造体へのポインター。

refTime
CTime オブジェクトへの参照です。

戻り値

成功した場合は 0 以外。失敗した場合は 0。 GetLastWriteTimeは、このCFileFindオブジェクトで呼び出されたことがない場合FindNextFileにのみ 0 を返します。

解説

呼び出す前に少なくとも 1 回呼び出 FindNextFileGetLastWriteTime必要があります。

Note

すべてのファイル システムで同じセマンティクスを使用して、この関数によって返されるタイム スタンプを実装するわけではありません。 基になるファイル システムまたはサーバーが time 属性の保持をサポートしていない場合、この関数は他のタイム スタンプ関数から返されるのと同じ値を返す場合があります。 時刻形式については、 WIN32_FIND_DATA 構造を参照してください。 一部のオペレーティング システムでは、返される時刻は、ファイルが配置されていたコンピューターにローカルなタイム ゾーンにあります。 詳細については、Win32 FileTimeToLocalFileTime API を参照してください。

CFileFind::GetLength の例を参照してください。

CFileFind::GetLength

このメンバー関数を呼び出して、見つかったファイルの長さをバイト単位で取得します。

ULONGLONG GetLength() const;

戻り値

見つかったファイルの長さ (バイト単位)。

解説

呼び出す前に少なくとも 1 回呼び出 FindNextFileGetLength必要があります。

GetLength では、Win32 構造体 WIN32_FIND_DATA を使用して、ファイル サイズの値をバイト単位で取得して返します。

Note

MFC 7.0 以降では、 GetLength 64 ビット整数型がサポートされています。 この新しいバージョンのライブラリで以前にビルドされた既存のコードでは、切り捨て警告が発生する可能性があります。

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

このメンバー関数を呼び出して、見つかったファイルのルートを取得します。

virtual CString GetRoot() const;

戻り値

アクティブな検索のルート。

解説

呼び出す前に少なくとも 1 回呼び出 FindNextFileGetRoot必要があります。

このメンバー関数は、検索を開始するために使用されるドライブ指定子とパス名を返します。 たとえば、空の文字列を返す結果をGetRoot*.datび出FindFileします。 などのパスc:\windows\system\*.dllを返す結果GetRootFindFile渡しますc:\windows\system\

CFileFind::GetFileName の例を参照してください。

CFileFind::IsArchived

このメンバー関数を呼び出して、見つかったファイルがアーカイブされているかどうかを確認します。

BOOL IsArchived() const;

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

アプリケーションは、バックアップまたは削除されるアーカイブ ファイルを、 FILE_ATTRIBUTE_ARCHIVE構造で識別されるファイル属性で WIN32_FIND_DATA マークします。

呼び出す前に少なくとも 1 回呼び出 FindNextFileIsArchived必要があります。

ファイル属性の完全な一覧については、メンバー関数 MatchesMask を参照してください。

CFileFind::GetLength の例を参照してください。

CFileFind::IsCompressed

このメンバー関数を呼び出して、見つかったファイルが圧縮されているかどうかを判断します。

BOOL IsCompressed() const;

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

圧縮ファイルは、構造内で FILE_ATTRIBUTE_COMPRESSED識別されるファイル属性で WIN32_FIND_DATA マークされます。 ファイルの場合、この属性は、ファイル内のすべてのデータが圧縮されていることを示します。 ディレクトリの場合、この属性は、圧縮が新しく作成されたファイルとサブディレクトリの既定値であることを示します。

呼び出す前に少なくとも 1 回呼び出 FindNextFileIsCompressed必要があります。

ファイル属性の完全な一覧については、メンバー関数 MatchesMask を参照してください。

CFileFind::GetLength の例を参照してください。

CFileFind::IsDirectory

このメンバー関数を呼び出して、見つかったファイルがディレクトリであるかどうかを判断します。

BOOL IsDirectory() const;

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

ディレクトリであるファイルは、構造で FILE_ATTRIBUTE_DIRECTORY 識別されるファイル属性で WIN32_FIND_DATA マークされます。

呼び出す前に少なくとも 1 回呼び出 FindNextFileIsDirectory必要があります。

ファイル属性の完全な一覧については、メンバー関数 MatchesMask を参照してください。

この小さなプログラムは、C:\ ドライブ上のすべてのディレクトリを繰り返し、ディレクトリの名前を出力します。

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

このメンバー関数を呼び出して、ファイルの反復処理中に現在のディレクトリと親ディレクトリ マーカーをテストします。

virtual BOOL IsDots() const;

戻り値

見つかったファイルの名前が "." または ".." の場合は 0 以外。見つかったファイルが実際にディレクトリであることを示します。 それ以外の場合は 0。

解説

呼び出す前に少なくとも 1 回呼び出 FindNextFileIsDots必要があります。

CFileFind::IsDirectory の例を参照してください。

CFileFind::IsHidden

このメンバー関数を呼び出して、見つかったファイルが非表示かどうかを判断します。

BOOL IsHidden() const;

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

非表示のファイル。このファイルは、構造内で識別されるファイル属性でWIN32_FIND_DATAマークFILE_ATTRIBUTE_HIDDENされます。 隠しファイルは、通常のディレクトリ一覧には含まれません。

呼び出す前に少なくとも 1 回呼び出 FindNextFileIsHidden必要があります。

ファイル属性の完全な一覧については、メンバー関数 MatchesMask を参照してください。

CFileFind::GetLength の例を参照してください。

CFileFind::IsNormal

このメンバー関数を呼び出して、見つかったファイルが通常のファイルかどうかを判断します。

BOOL IsNormal() const;

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

でマークされた FILE_ATTRIBUTE_NORMALファイル、構造体で WIN32_FIND_DATA 識別されるファイル属性。 通常のファイルには、他の属性が設定されていません。 他のすべてのファイル属性は、この属性をオーバーライドします。

呼び出す前に少なくとも 1 回呼び出 FindNextFileIsNormal必要があります。

ファイル属性の完全な一覧については、メンバー関数 MatchesMask を参照してください。

CFileFind::GetLength の例を参照してください。

CFileFind::IsReadOnly

このメンバー関数を呼び出して、見つかったファイルが読み取り専用かどうかを判断します。

BOOL IsReadOnly() const;

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

読み取り専用ファイルは、構造体で FILE_ATTRIBUTE_READONLY識別されるファイル属性で WIN32_FIND_DATA マークされます。 アプリケーションはこのようなファイルを読み取ることができますが、書き込んだり削除したりすることはできません。

呼び出す前に少なくとも 1 回呼び出 FindNextFileIsReadOnly必要があります。

ファイル属性の完全な一覧については、メンバー関数 MatchesMask を参照してください。

CFileFind::GetLength の例を参照してください。

CFileFind::IsSystem

このメンバー関数を呼び出して、見つかったファイルがシステム ファイルかどうかを判断します。

BOOL IsSystem() const;

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

システム ファイルは、構造体で FILE_ATTRIBUTE_SYSTEM識別されるファイル属性で WIN32_FIND_DATA マークされます。 システム ファイルは、オペレーティング システムの一部であるか、オペレーティング システムによって排他的に使用されます。

呼び出す前に少なくとも 1 回呼び出 FindNextFileIsSystem必要があります。

ファイル属性の完全な一覧については、メンバー関数 MatchesMask を参照してください。

CFileFind::GetLength の例を参照してください。

CFileFind::IsTemporary

このメンバー関数を呼び出して、見つかったファイルが一時ファイルかどうかを判断します。

BOOL IsTemporary() const;

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

一時ファイルは、構造体で FILE_ATTRIBUTE_TEMPORARY識別されるファイル属性で WIN32_FIND_DATA マークされます。 一時ファイルは、一時ストレージに使用されます。 アプリケーションは、絶対に必要な場合にのみファイルに書き込む必要があります。 ファイルのほとんどのデータはメインファイルが間もなく削除されるため、メディアにフラッシュされずにメモリ内に再メインされます。

呼び出す前に少なくとも 1 回呼び出 FindNextFileIsTemporary必要があります。

ファイル属性の完全な一覧については、メンバー関数 MatchesMask を参照してください。

CFileFind::GetLength の例を参照してください。

CFileFind::m_pTM

CAtlTransactionManager オブジェクトを指すポインター。

CAtlTransactionManager* m_pTM;

解説

CFileFind::MatchesMask

このメンバー関数を呼び出して、見つかったファイルのファイル属性をテストします。

virtual BOOL MatchesMask(DWORD dwMask) const;

パラメーター

dwMask
見つかったファイルの構造で WIN32_FIND_DATA 識別される 1 つ以上のファイル属性を指定します。 複数の属性を検索するには、ビットごとの OR (|) 演算子を使用します。 次の属性を任意に組み合わせて使用できます。

  • FILE_ATTRIBUTE_ARCHIVE ファイルはアーカイブ ファイルです。 アプリケーションでは、この属性を使用して、バックアップまたは削除の対象にファイルをマークします。

  • FILE_ATTRIBUTE_COMPRESSED ファイルまたはディレクトリは圧縮されます。 ファイルの場合、これは、ファイル内のすべてのデータが圧縮されることを意味します。 ディレクトリの場合、これは、圧縮が新しく作成されたファイルとサブディレクトリの既定値であることを意味します。

  • FILE_ATTRIBUTE_DIRECTORY ファイルはディレクトリです。

  • FILE_ATTRIBUTE_NORMAL ファイルには他の属性が設定されていません。 この属性は、単独で使用された場合にのみ有効です。 他のすべてのファイル属性は、この属性をオーバーライドします。

  • FILE_ATTRIBUTE_HIDDEN ファイルは非表示になっています。 通常のディレクトリ 一覧に含まれるものではありません。

  • FILE_ATTRIBUTE_READONLY ファイルは読み取り専用です。 アプリケーションはファイルを読み取ることができますが、ファイルに書き込んだり削除したりすることはできません。

  • FILE_ATTRIBUTE_SYSTEM ファイルはオペレーティング システムの一部であるか、オペレーティング システムによって排他的に使用されます。

  • FILE_ATTRIBUTE_TEMPORARY ファイルは一時ストレージに使用されています。 アプリケーションは、絶対に必要な場合にのみファイルに書き込む必要があります。 ファイルのほとんどのデータはメインファイルが間もなく削除されるため、メディアにフラッシュされずにメモリ内に再メインされます。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。 拡張エラー情報を取得するには、Win32 関数 GetLastErrorを呼び出します。

解説

呼び出す前に少なくとも 1 回呼び出 FindNextFileMatchesMask必要があります。

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

関連項目

CObject クラス
階層図
CFtpFileFind クラス
CGopherFileFind クラス
CInternetFile クラス
CGopherFile クラス
CHttpFile クラス