○FTPクライアント

Wininetライブラリを使用しています。


#pragma comment(lib, "wininet.lib")

#include <stdio.h>
#include <windows.h>
#include <wininet.h>


int main(int count,char *args[]){

	//サーバーとIDとパスワード
	LPCTSTR	FTPServerName	=	"localhost";
	LPCTSTR	FTPUserID		=	"Anonymous";
	LPCTSTR	FTPUserPW		=	"test@test";

	HINTERNET hInternet;
	HINTERNET hFtp;

	//インターネットを開く
	hInternet = InternetOpen(
		"inaba 01",
		INTERNET_OPEN_TYPE_DIRECT,
		NULL,
		NULL,
		0);
    
	if(hInternet==NULL){
		printf("インターネットを開けません\n");
		InternetCloseHandle(hInternet);
		return 1;
	}

	//FTPサーバーに接続
	hFtp = InternetConnect(
		hInternet,
		FTPServerName,
		INTERNET_DEFAULT_FTP_PORT,
		FTPUserID,
		FTPUserPW,
		INTERNET_SERVICE_FTP,
		0,
		0);

	if(hFtp==NULL){
		printf("FTPサーバーに接続できませんでした\n");
		InternetCloseHandle(hFtp);
		InternetCloseHandle(hInternet);
		return 1;
	}

	BOOL resolt = TRUE;

	////ファイルのダウンロード
	////FTPサーバーにあるtest.txtをバイナリモードでダウンロードしc:\test.txtに保存します。
	//resolt = FtpGetFile(hFtp,"test.txt","c:\\test.txt",FALSE,FILE_ATTRIBUTE_NORMAL,FTP_TRANSFER_TYPE_BINARY,NULL);
	////フォルダからダウンロードする場合は"フォルダ名/test.txt"とします

	////ファイルのアップロード
	////ローカルにあるc:\test.txtをバイナリモードでアップロードします
	//resolt = FtpPutFile(hFtp,"c:\\test.txt","test.txt",FTP_TRANSFER_TYPE_BINARY,NULL);
	////フォルダにアップロードする場合は"フォルダ名/test.txt"とします

	////ファイルとフォルダの名前の列挙
	//WIN32_FIND_DATA FindData;
	//HINTERNET hFind = FtpFindFirstFile(hFtp, "/", &FindData, INTERNET_FLAG_RELOAD, 0);
	////フォルダの中のファイルを列挙する場合は"/フォルダ名/"とします
	//if(hFind!=NULL){
	//	do {
	//		 printf("%s\n", FindData.cFileName);
	//	} while(InternetFindNextFile(hFind,&FindData));
	//}

	if(!resolt) printf("ファイル転送失敗\n");

	InternetCloseHandle(hFtp);
	InternetCloseHandle(hInternet);

	return 0;
}



▲トップページ > Windows と C++