ファイルの検索(C言語)

キーワード:

FindFirstFile, FileTimeToLocalFileTime, FileTimeToSystemTime, FindNextFile, FindClose

サンプルコード:

/* My Documents配下のファイルを全て検索する */
void DoFind()
{
	HANDLE hFind;
	WIN32_FIND_DATA fd;
	FILETIME ft;
	SYSTEMTIME st;

	/* 最初のファイル検索 */
	hFind = FindFirstFile("\\my documents\\*.*", &fd);

	/* 検索失敗? */
	if(hFind == INVALID_HANDLE_VALUE) {
		printf("検索失敗\n");
		return; /******** エラー終了 ********/
	}

	do {
		/* 更新時間取得 */
		FileTimeToLocalFileTime(&fd.ftLastWriteTime, &ft);
		FileTimeToSystemTime(&ft, &st);

		/* 結果の表示 */
		printf("ファイル名: %s", fd.cFileName);

		if(fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
			printf("(ディレクトリ)");
		}

		printf("\n短いファイル名: %s\n", fd.cAlternateFileName);
		printf("ファイルサイズ: %d\n", fd.nFileSizeLow);
		printf("更新日: %04d/%02d/%02d %02d:%02d:%02d\n\n",
			st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond);

	} while(FindNextFile(hFind, &fd)); '次のファイルを検索

	/* 検索終了 */
	FindClose(hFind);
}
(original text:1998/12/25 更新)

本ドキュメントの内容は保証しません。本ドキュメントによって生じた結果について、一切の責任を負いません。