ファイルの存在を確認する

指定したファイルがあるかどうかを調べるにはCreateFileを使ってファイルにアクセスできるかどうかを調べる方法と、今回使っているFindFirstFileで検索できるかどうかを使う方法がある。
FindFirstFileの場合は少し改良すればフォルダの存在確認にも使えるので便利だ。

//
//	ファイルの存在を確認する
//
bool	IsFileExist(LPCTSTR pszFile)
{
	HANDLE			hFind;
	WIN32_FIND_DATA	FindFileData;

	hFind = ::FindFirstFile(pszFile,&FindFileData);
	if(hFind == INVALID_HANDLE_VALUE)
		return	false;
	::FindClose(hFind);
	if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
		return	false;		//同名のフォルダがある(ファイルではない)

	return	true;
}

void	Test(void)
{
	bool	ret;

	ret = IsFileExist(_T("c:\\IO.SYS"));

	if(ret)
		::MessageBox(NULL,_T("ファイルは存在します"),_T(""),MB_OK);
	else
		::MessageBox(NULL,_T("ファイルは存在しません"),_T(""),MB_OK);
}

プロジェクトファイルをダウンロード


カテゴリー「ファイル・フォルダ」 のエントリー