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
は、特定のサーバーの種類を検索するように設計された他の 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 プログラミング」の記事を参照。
継承階層
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
検索するファイルの名前を含む文字列へのポインター。 pstrName
のNULL
を渡すと、ワイルドカード (*.*) 検索が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 回呼び出す必要があります。
このメンバー関数は、検索を開始するために使用されるドライブ指定子とパス名を返します。 たとえば、*.dat
でFindFile
を呼び出すと、GetRoot
空の文字列が返されます。 c:\windows\system\*.dll
などのパスを渡して結果をFindFile
GetRoot
、c:\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
クラス