FTPでリモートホスト上にファイルを作成(C言語)

説明:

InternetWriteFileを使用して、リモート上に現時点の時刻をテキスト化したHTMLファイルを作成する。

キーワード:

InternetOpen, InternetConnect, FtpOpenFile, InternetWriteFile, InternetClose

サンプルコード:

void WriteTimePage()
{
	SYSTEMTIME st;
	char buf[1000];
	HINTERNET hInternet;
	HINTERNET hFtpSession;
	HINTERNET hFile;
	DWORD WriteBytes;

	/* 元となるHTMLドキュメントを作成 */
	GetLocalTime(&st);

	wsprintf(buf, "<html>\n\t<body>\n\t\t現在の時刻は %04d/%02d/%02d %02d:%02d:%02dです.\n\t</body>\n</html>\n",
		st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond);

	/* WININETの初期化 */
	hInternet = InternetOpen(
		"WININET Sample Program",
		INTERNET_OPEN_TYPE_PRECONFIG,
		NULL,
		NULL,
		0);

	/* ftpサイトへ接続 */
	hFtpSession = InternetConnect(
		hInternet,
		"ftp.hogehoge.herohero",
		INTERNET_DEFAULT_FTP_PORT,
		"foo",
		"bar",
		INTERNET_SERVICE_FTP,
		0,
		0);

	/* “time.html”というファイルを書き込みアクセスでオープン */
	hFile = FtpOpenFile(
		hFtpSession,
		"time.html",
		GENERIC_WRITE,
		FTP_TRANSFER_TYPE_ASCII,
		0);

	/* オープンしたファイルへHTMLドキュメントの内容を書き込む */
	InternetWriteFile(
		hFile,
		buf,
		lstrlen(buf) + 1,
		&WriteBytes);

	/* 後処理 */
	InternetCloseHandle(hFile);
	InternetCloseHandle(hFtpSession);
	InternetCloseHandle(hInternet);
	
}

(original text:1999/04/21 更新)

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