|
// *********************************************************
// 内部関数
// 戻り値 : 無し
// *********************************************************
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;
}
| |