LboxWininet


  FTPEnum



  
// *********************************************************
// 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;
}
  










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





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

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ