FtpPutFile FTPでファイルをローカルからリモートへ転送

Cの宣言:

BOOL FtpPutFile(
	IN HINTERNET hFtpSession,
	IN LPCSTR LocalFileName,
	IN LPCSTR RemoteFileName,
	IN DWORD Flags,
	IN DWORD Context);

説明:

hFtpSessionで指定されたFTPセッションで、LocalFileNameで指定されたローカルのファイルをリモートへ転送する。

引数の意味は以下の通り。
hFtpSession FTPセッションのハンドル。
LocalFileName 転送元のファイル名。
RemoteFileName 転送先のファイル名。
Flags 転送方法を指定するフラグ。後述の表を参照。
Context アプリケーション定義のコールバック関数に渡す32bit値。

Flagsに指定可能な値は、以下のフラグの組み合わせである。
INTERNET_FLAG_DONT_CACHE
INTERNET_FLAG_HYPERLINK
INTERNET_FLAG_MAKE_PERSISTENT
INTERNET_FLAG_MUST_CACHE_REQUEST
INTERNET_FLAG_NEED_FILE
INTERNET_FLAG_NO_CACHE_WRITE
INTERNET_FLAG_RELOAD
INTERNET_FLAG_RESYNCHRONIZE
INTERNET_FLAG_TRANSFER_ASCII
INTERNET_FLAG_TRANSFER_BINARY

戻り値は、関数の実行に成功したか否かを表す真偽値である。

Cのサンプル:

FtpPutFileを使用して、“c:\doc\hello.html”というローカルのファイルをリモートへ転送する。
void PutLocalFile()
{
	HINTERNET hInternet;
	HINTERNET hFtpSession;

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

	/* FTPセッションの確立 */
	hFtpSession = InternetConnect(
		hInternet,
		"ftp.cool.ne.jp",
		INTERNET_DEFAULT_FTP_PORT,
		"foo",
		"bar",
		INTERNET_SERVICE_FTP,
		0,
		0);

	/* ローカルのファイルをリモートへ転送 */
	FtpPutFile(
		hFtpSession,
		"c:\\doc\\hello.html",
		"hello.html",
		FTP_TRANSFER_TYPE_ASCII,
		0);

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

(original text:1999/05/19 更新)

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