カレントディレクトリのファイル一覧

  LboxEnumFile



  
// *********************************************************
// 内部関数
// 戻り値 : 無し
// *********************************************************
void LboxListSetFileInformation(
HWND hList,
WIN32_FIND_DATA *wfd,
int nIndex,
LPTSTR szBuffer
)
{
	FILETIME ft;
	SYSTEMTIME st;

	wsprintf( szBuffer, "%s", wfd->cFileName );
	wsprintf( szBuffer+lstrlen(szBuffer), "\t%ld", wfd->nFileSizeLow );
	FileTimeToLocalFileTime( &(wfd->ftLastWriteTime), &ft );
	FileTimeToSystemTime( &ft, &st );
	wsprintf(
		szBuffer+lstrlen(szBuffer),
		"\t%02d-%02d-%02d %02d:%02d:%02d",
		st.wYear,
		st.wMonth,
		st.wDay,
		st.wHour,
		st.wMinute,
		st.wSecond
	);

	SHFILEINFO sfi;
	SHGetFileInfo(
		wfd->cFileName,
		NULL,
		&sfi,
		sizeof( SHFILEINFO ),
		SHGFI_TYPENAME  
	);
	wsprintf( szBuffer+lstrlen(szBuffer), "\t%s", sfi.szTypeName );

	wsprintf( szBuffer+lstrlen(szBuffer), "\t%s", wfd->cAlternateFileName );

	LboxListInsert( hList, nIndex, szBuffer );
}

// *********************************************************
// リストボックスにカレントディレクトリのファイルの一覧を追加
// 戻り値 : 無し
// *********************************************************
void LboxEnumFile( HWND hList, int nIndex )
{
	HANDLE hFile;
	BOOL bRet;
	WIN32_FIND_DATA wfd;
	LPTSTR szBuffer;

	szBuffer = new char[MAX_PATH*2];

	hFile = FindFirstFile( "*.*", &wfd );
	bRet = true;

	while( hFile != INVALID_HANDLE_VALUE && bRet == (BOOL)true ) {

		LboxListSetFileInformation(
			hList,
			&wfd,
			nIndex,
			szBuffer
		);
		nIndex++;

		bRet = FindNextFile( hFile, &wfd );

	}
	if ( !bRet ) {
		FindClose( hFile );
	}

	delete [] szBuffer;
}

// *********************************************************
// リストボックスにカレントディレクトリのファイルの一覧を追加
// 戻り値 : 無し
// *********************************************************
void LboxEnumFile( HWND hList, LPTSTR lpOption, int nIndex )
{
	HANDLE hFile;
	BOOL bRet;
	WIN32_FIND_DATA wfd;
	LPTSTR szBuffer;

	szBuffer = new char[MAX_PATH*2];

	hFile = FindFirstFile( "*.*", &wfd );
	bRet = true;

	while( hFile != INVALID_HANDLE_VALUE && bRet == (BOOL)true ) {

		if ( !PathIsDirectory( wfd.cFileName ) ) {
			bRet = FindNextFile( hFile, &wfd );
			continue;
		}

		LboxListSetFileInformation(
			hList,
			&wfd,
			nIndex,
			szBuffer
		);
		nIndex++;

		bRet = FindNextFile( hFile, &wfd );

	}
	if ( !bRet ) {
		FindClose( hFile );
	}

	LboxToken *Ltoken;
	int i;

	Ltoken = new LboxToken();
	Ltoken->CreateToken( lpOption, ";" );

	for( i = 0; i < Ltoken->nCount; i++ ) {
		hFile = FindFirstFile( Ltoken->Token[i], &wfd );

		bRet = true;

		while( hFile != INVALID_HANDLE_VALUE
			&& bRet == (BOOL)true ) {

			if ( PathIsDirectory( wfd.cFileName ) ) {
				bRet = FindNextFile( hFile, &wfd );
				continue;
			}

			LboxListSetFileInformation(
				hList,
				&wfd,
				nIndex,
				szBuffer
			);
			nIndex++;

			bRet = FindNextFile( hFile, &wfd );

		}
		if ( !bRet ) {
			FindClose( hFile );
		}
	}

	delete Ltoken;
	delete [] szBuffer;
}
  










  infoboard   管理者用   
このエントリーをはてなブックマークに追加





フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ