CInternetSessionによるファイルのダウンロード

解説

    CInternetSessionを使えばネット経由で簡単にダウンロードが可能。
    OpenURL()でアクセスしたいURLを指定するだけだ。ユーザー名やパスワード
   が必要な場合もこの関数で対応できる。

 ・サンプル
    指定したURLをダウンロードし、指定したファイル名で保存する。

#include <afxinet.h>

bool	GetHttpFile(CString strFileName,CString strURL) 
{
	int			n;
	BYTE		lpBuff[1024];

	CStdioFile			cFile;
	CStdioFile*			lpcNetFile;
	CInternetSession	cSec;

	lpcNetFile = cSec.OpenURL(strURL);
	if(lpcNetFile == NULL)
	{
		ASSERT(1);
		return	false;
	}
	cFile.Open(strFileName,CFile::modeCreate | CFile::modeWrite | CFile::shareDenyNone);
	while(1)
	{
		n = lpcNetFile->Read(lpBuff,1024);
		cFile.Write(lpBuff,n);
		if(n < 1024)
			break;
	}
	cFile.Close();
	delete	lpcNetFile;

	return	true;
}

	//////////////////////////////////////////
	//使うときはこんな感じで使う
	
	bool	ret;

	ret = GetHttpFile("c:\\hh.html","http://www.dinop.com/");
	if(ret == true)
		AfxMessageBox("成功しました");
	else
		AfxMessageBox("失敗しました");

カテゴリー「VC++ TIPS」 のエントリー