次の方法で共有


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 クラスの基本クラスです。 CGopherFileFind は特に 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の呼び出しに置き換えることができます。

CFileFindおよびその他の WinInet クラスの使用方法の詳細については、「WinInet を使用したInternet プログラミング」の記事を参照

継承階層

CObject

CFileFind

要件

ヘッダー: afx.h

CFileFind::CFileFind

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

CFileFind();
CFileFind(CAtlTransactionManager* pTM);

パラメーター

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

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

CFileFind::Close

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

void Close();

解説

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

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

CFileFind::CloseContext

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

virtual void CloseContext();

解説

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

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

CFileFind::FindFile

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

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

パラメーター

pstrName
検索するファイルの名前を含む文字列へのポインター。 pstrNameNULLを渡すと、ワイルドカード (*.*) 検索が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 を返します。

解説

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

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;

戻り値

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

解説

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

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;

戻り値

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

解説

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

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。

解説

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

GetFileURLは、file://path形式で URL を返す点を除き、GetFilePathメンバー関数に似ています。 たとえば、 GetFileURL を呼び出して myfile.txt の完全な URL を取得すると、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は、このCFileFind オブジェクトでFindNextFileが呼び出されたことがない場合にのみ 0 を返します。

解説

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

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 を返します。

解説

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

Note

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

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

CFileFind::GetLength

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

ULONGLONG GetLength() const;

戻り値

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

解説

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

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;

戻り値

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

解説

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

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

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

CFileFind::IsArchived

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

BOOL IsArchived() const;

戻り値

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

解説

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

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

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

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

CFileFind::IsCompressed

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

BOOL IsCompressed() const;

戻り値

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

解説

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

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

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

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

CFileFind::IsDirectory

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

BOOL IsDirectory() const;

戻り値

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

解説

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

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

ファイル属性の完全な一覧については、メンバー関数の 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。

解説

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

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

CFileFind::IsHidden

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

BOOL IsHidden() const;

戻り値

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

解説

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

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

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

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

CFileFind::IsNormal

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

BOOL IsNormal() const;

戻り値

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

解説

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

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

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

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

CFileFind::IsReadOnly

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

BOOL IsReadOnly() const;

戻り値

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

解説

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

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

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

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

CFileFind::IsSystem

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

BOOL IsSystem() const;

戻り値

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

解説

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

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

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

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

CFileFind::IsTemporary

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

BOOL IsTemporary() const;

戻り値

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

解説

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

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

ファイル属性の完全な一覧については、メンバー関数の 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を呼び出します。

解説

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

// 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 クラス