[VC6] 指定URLのファイルダウンロード
VC6環境で、ネット経由で指定URLのファイルをダウンロードする必要がでてきたので、CInternetSessionを利用して、とりあえず土台をを作ってみた。
理想としては、#include を追加し、std::autoptrを使用してスッキリさせたかったのだが、コンパイル環境の都合上ここでは使わないこととした。
CFile->Close();もデストラクタで自動的に呼ばれるけれど、念のため。
あとは、pNetFile->GetLength();でダウンロードするサイズが分かるので、関数引数なりを追加すれば、プログレス表示にも対応しやすいかな。
#include <afxinet.h> bool FileDownload(LPCTSTR pszURL, LPCTSTR pszSaveFilePath) { bool bRslt = false; CFile* pNetFile = NULL; CInternetSession is; try{ // URLを開く pNetFile = is.OpenURL(pszURL); if(pNetFile == NULL) return bRslt; // ファイル保存 CFile saveFile(pszSaveFilePath, CFile::modeCreate | CFile::modeWrite | CFile::shareDenyNone); BYTE szBuff[1024]; int nReadBytes; while(0 < (nReadBytes = pNetFile->Read(szBuff, 1024))) saveFile.Write(szBuff, nReadBytes); saveFile.Close(); bRslt = true; } catch(CException* pEx){ pEx->ReportError(); pEx->Delete(); } // 後処理 if(pNetFile != NULL) pNetFile->Close(); delete pNetFile; return bRslt; } |
CFile->Close();もデストラクタで自動的に呼ばれるけれど、念のため。
あとは、pNetFile->GetLength();でダウンロードするサイズが分かるので、関数引数なりを追加すれば、プログレス表示にも対応しやすいかな。
| 固定リンク
「プログラミング(VC6)」カテゴリの記事
- [Javascript] Lightboxの作成(2010.09.06)
- [VC6] リソースファイル(.rc)から外部リソースファイルのインクルード(2008.05.19)
- [VC6] プロジェクトファイルをVSS6.0に関連づけ(2008.05.08)
- [VC6] メッセージボックスの[×]ボタンを使用不可にする(2008.06.27)
- [VC6] 指定URLのファイルダウンロード(2008.06.13)
コメント