FTPサーバからファイルサイズの取得について – プログラミング – Home

FTPサーバからファイルサイズの取得に...
 
通知
すべてクリア

[解決済] FTPサーバからファイルサイズの取得について


りんご
 りんご
(@りんご)
ゲスト
結合: 23年前
投稿: 28
Topic starter  

MFCを使用して、FTPサーバからファイルのダウンロードをしたいと思っています。
ダウンロード経過をプログレスバーで表示したいのですが、
ファイルサイズの取得で行き詰っています。

CInternetFile::GetLength()を使用して
ファイルの長さを取得していますが、戻り値が8192バイトや1440バイト等
不定の値が返ってくることがあり、解決できません。
(正しい値が入っていることもあります。)
ほかの方法もいろいろ探したのですがMFCを使用すると
CInternetFile::GetLength()しか方法はないと思うのですが・・・
なにかアドバイスをいただけたら幸いです。

下記のプログラムでファイル自体はダウンロードできます。

CInternetSession* pSession = new CInternetSession();
CFtpConnection* pFtpConnection = pSession->GetFtpConnection(strServerName);
CInternetFile* pFile = pFtpConnection->OpenFile(strRemoteFile);
ULONGLONG ullLength = pFile->GetLength;
TCHAR* pBuf = new TCHAR[(size_t)ullLength];

while((UINT)pFile->Read(&pBuf[i], 1))
{
  // プログレスバーに通知
i++;
}

// 終了処理

環境:Win2000SP3,VC++7,MFC


引用未解決
トピックタグ
瀬戸っぷ
 瀬戸っぷ
(@瀬戸っぷ)
ゲスト
結合: 22年前
投稿: 160
 

> ほかの方法もいろいろ探したのですがMFCを使用すると
> CInternetFile::GetLength()しか方法はないと思うのですが・・・

MFCは使っていませんし、InternetAPIもほとんど使ったコトはないのですが…
CFtpFileFind::FindFile()はどうでしょうか?
検索させてから、CFtpFileFind::GetLength()で取得できるかと…

# ただ、別の掲示板でFtpFindFirstFile()での挙動が…とかいうのがありましたが。


返信引用
りんご
 りんご
(@りんご)
ゲスト
結合: 23年前
投稿: 28
Topic starter  

瀬戸っぷさま、ご返信ありがとうございます。
ずばり解決いたしました。

ファイルリストを取得する必要がないため、
CFtpFileFindは軽く見ただけで流していました。

> # ただ、別の掲示板でFtpFindFirstFile()での挙動が…とかいうのがありましたが。
今のところ、ファイル名を指定してFindFile()をする限り
正常に動作いたしますので、この方法でいこうと思います。

本当にありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました