CFileFind クラス

ローカル ファイル検索を実行します。これは、 と の基本クラスであり、インターネット CGopherFileFindCFtpFileFind ファイル検索を実行します。

構文

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 は、特定のサーバーの種類を検索するように設計された他の 2 つの MFC クラスの基本クラスです。 は、特に gopher サーバーで動作し、特に FTP サーバーで CGopherFileFindCFtpFileFind 動作します。 これら 3 つのクラスを組み合わせて使用すると、ローカル コンピューターまたはリモート サーバー上のサーバー プロトコル、ファイルの種類、または場所に関係なく、クライアントがファイルを見つけ出すシームレスなメカニズムが提供されます。

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

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

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

の使い方と他の WinInet クラスの詳細については、WinInet を使用したインターネット プログラミングに関する CFileFindCFileFind

継承階層

CObject

CFileFind

必要条件

ヘッダー:

CFileFind::CFileFind

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

CFileFind();
CFileFind(CAtlTransactionManager* pTM);

パラメーター

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

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

CFileFind::Close

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

void Close();

注釈

を呼 Close び出した後、 を呼び出して新しい検索を開始する前に CFileFindFindFile 、新しいインスタンスを作成する必要が生じ" は生じ "ない"。

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

CFileFind::CloseContext

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

virtual void CloseContext();

注釈

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

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

CFileFind::FindFile

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

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

パラメーター

pstrName
検索するファイルの名前を含む文字列へのポインター。 に を渡 NULL した pstrName 場合 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 は、このオブジェクトで が FindNextFile 呼び出されたことがない場合にのみ 0 を返 CFileFind します。

注釈

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

注意

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

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

CFileFind::GetFileName

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

virtual CString GetFileName() const;

戻り値

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

注釈

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

GetFileName は、何らかの形式の CFileFind ファイル名を返す 3 つのメンバー関数の 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;

戻り値

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

注釈

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

GetFilePath は、何らかの形式の CFileFind ファイル名を返す 3 つのメンバー関数の 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;

戻り値

ファイルのタイトル。

注釈

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

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

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

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

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

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

CFileFind::GetFileURL

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

virtual CString GetFileURL() const;

戻り値

完全な URL。

注釈

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

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

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

CFileFind::GetLastAccessTime

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

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

パラメーター

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

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

戻り値

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

注釈

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

注意

すべてのファイル システムが同じセマンティクスを使用して、この関数によって返されるタイム スタンプを実装する場合はありません。 基になるファイル システムまたはサーバーが 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 は、このオブジェクトで が FindNextFile 呼び出されたことがない場合にのみ 0 を返 CFileFind します。

注釈

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

注意

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

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

CFileFind::GetLength

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

ULONGLONG GetLength() const;

戻り値

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

注釈

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

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

注意

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;

戻り値

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

注釈

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

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

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

CFileFind::IsArchived

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

BOOL IsArchived() const;

戻り値

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

注釈

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

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

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

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

CFileFind::IsCompressed

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

BOOL IsCompressed() const;

戻り値

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

注釈

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

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

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

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

CFileFind::IsDirectory

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

BOOL IsDirectory() const;

戻り値

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

注釈

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

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

ファイル属性の完全な 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。

注釈

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

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

CFileFind::IsHidden

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

BOOL IsHidden() const;

戻り値

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

注釈

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

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

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

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

CFileFind::IsNormal

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

BOOL IsNormal() const;

戻り値

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

注釈

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

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

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

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

CFileFind::IsReadOnly

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

BOOL IsReadOnly() const;

戻り値

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

注釈

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

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

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

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

CFileFind::IsSystem

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

BOOL IsSystem() const;

戻り値

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

注釈

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

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

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

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

CFileFind::IsTemporary

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

BOOL IsTemporary() const;

戻り値

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

注釈

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

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

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 ます。

注釈

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

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

関連項目

講義
階層図
講義
講義
講義
講義
講義