|
// *********************************************************
// FTP ファイル一覧の取得
// ファイル名には "" か ワイルドカードを指定して下さい
// 戻り値 : true 成功, false データ無し
// *********************************************************
BOOL LboxWininet::FTPEnum(
LboxString *LDir, LboxString *LFile, LboxListview *Lview )
{
return LboxWininet::FTPEnum(
LDir->szLboxString,
LFile->szLboxString,
Lview
);
}
BOOL LboxWininet::FTPEnum(
LPTSTR lpDir, LPTSTR lpFile, LboxListview *Lview )
{
Lview->Initialize();
Lview->AddColumn( LVCFMT_LEFT, 100, "" );
Lview->AddColumn( LVCFMT_LEFT, 100, "ファイル名" );
Lview->AddColumn( LVCFMT_LEFT, 100, "最終更新" );
Lview->AddColumn( LVCFMT_LEFT, 100, "属性" );
Lview->AddColumn( LVCFMT_LEFT, 100, "サイズ" );
Lview->AddColumn( LVCFMT_LEFT, 100, "作成日" );
Lview->AddColumn( LVCFMT_LEFT, 100, "最終アクセス" );
HINTERNET hFind;
LboxString Local;
WIN32_FIND_DATA wfd;
SYSTEMTIME st;
int nCnt;
BOOL bRet;
Local.operator = (lpDir);
Local.operator += ("/");
Local.operator += (lpFile);
hFind = NULL;
nCnt = 0;
while( 1 ) {
if ( hFind == NULL ) {
hFind = FtpFindFirstFile(
this->hConnect,
Local.szLboxString,
&wfd,
INTERNET_FLAG_RELOAD,
NULL
);
if ( hFind == NULL ) {
return false;
}
}
else {
bRet = InternetFindNextFile(
hFind,
&wfd
);
if ( !bRet ) {
break;
}
}
Lview->AddRow();
nCnt++;
Lview->SetColumnPrintf( 0, "%d", nCnt );
Lview->SetColumnText( 1, wfd.cFileName );
FileTimeToSystemTime(
&(wfd.ftLastWriteTime),
&st
);
Local.Printf(
"%04d/%02d/%02d %02d:%02d:%02d",
st.wYear,
st.wMonth,
st.wDay,
st.wHour,
st.wMinute,
st.wSecond
);
if ( Local.operator != ("1601/01/01 00:00:00") ) {
Lview->SetColumnText( 2, &Local );
}
Lview->SetColumnPrintf( 3, "%X", wfd.dwFileAttributes );
Lview->SetColumnPrintf( 4, "%ld", wfd.nFileSizeLow );
FileTimeToSystemTime(
&(wfd.ftCreationTime),
&st
);
Local.Printf(
"%04d/%02d/%02d %02d:%02d:%02d",
st.wYear,
st.wMonth,
st.wDay,
st.wHour,
st.wMinute,
st.wSecond
);
if ( Local.operator != ("1601/01/01 00:00:00") ) {
Lview->SetColumnText( 5, &Local );
}
FileTimeToSystemTime(
&(wfd.ftLastAccessTime),
&st
);
Local.Printf(
"%04d/%02d/%02d %02d:%02d:%02d",
st.wYear,
st.wMonth,
st.wDay,
st.wHour,
st.wMinute,
st.wSecond
);
if ( Local.operator != ("1601/01/01 00:00:00") ) {
Lview->SetColumnText( 6, &Local );
}
}
Lview->Fit();
return true;
}
| |