VC++怎么获取FTP上的文件大小信息
voidCTestDlg::OnConnect(){strip="192.168.0.2";strport="21";strusr="mdy";strpwd="mdy";...
void CTestDlg::OnConnect()
{
strip="192.168.0.2";
strport="21";
strusr="mdy";
strpwd="mdy";
pInternetSession = new CInternetSession("MR",
INTERNET_OPEN_TYPE_PRECONFIG);
try{
pFtpConnection = pInternetSession->GetFtpConnection(strip,
strusr,strpwd,atoi(strport));
}
catch(CInternetException* pEx)
{
CString sErr;
CString FtpPath;
TCHAR szErr[1024];
pEx->GetErrorMessage(szErr, 1024);
sErr.Format( "连接FTP失败:%s", szErr );
AfxMessageBox(sErr);
pEx->Delete();
}
CString FtpPath;
m_ftpfilelst.ResetContent();
CFtpFileFind ftpfind(pFtpConnection);
BOOL bfind=ftpfind.FindFile(FtpPath);
while(bfind)
{
bfind=ftpfind.FindNextFile();
CString strpath=ftpfind.GetFileURL();
if(ftpfind.IsDirectory() )
{
m_ftpfilelst.AddString(strpath + " 文件夹");
CString sTemp ;
CString sLocalTemp ;
CString LocalPath ;
CString sTempFtpPath ;
sTemp.Empty();
sTemp = ftpfind.GetFileName();
sLocalTemp.Empty() ;
LocalPath = "d:\\Program Files\\联创\\";
sLocalTemp = LocalPath + "\\" + sTemp ;
sTemp.Empty();
sTemp = ftpfind.GetFilePath();
CFileStatus rStatus;
downloadfile.SetWindowText(strpath);
CreateDirectory((LPCTSTR)sLocalTemp, NULL);//创建目录
UpdateData(false);
}
else
{
m_ftpfilelst.AddString(strpath + " 文件");
CString sTemp ;
CString sLocalTemp ;
CString LocalPath ;
CString sTempFtpPath ;
sTemp.Empty();
sTemp = ftpfind.GetFileName();
sLocalTemp.Empty() ;
LocalPath = "d:\\Program Files\\联创\\";
sLocalTemp = LocalPath + "\\" + sTemp ;
sTemp.Empty();
sTemp = ftpfind.GetFilePath();
CFileStatus rStatus;
CString csStatus;
downloadfile.SetWindowText(strpath);
pFtpConnection ->GetFile( sTemp, sLocalTemp, true, FILE_ATTRIBUTE_NORMAL, FTP_TRANSFER_TYPE_BINARY, 1);//下载文件
UpdateData(false);
}
m_edit1++;
i++;
m_progress.SetPos(i);
UpdateData(false);
}
m_progress.SetRange(0,i);
m_progress.SetPos(i);
UpdateData(false);
}
以上是我的FTP源程序,请问我要怎么才可以获取FTP上每个文件的大小呢?
问题我已经解决了。
但是我现在想知道怎么获取比如一个文件9M,下载的字节和剩余的字节是多少? 展开
{
strip="192.168.0.2";
strport="21";
strusr="mdy";
strpwd="mdy";
pInternetSession = new CInternetSession("MR",
INTERNET_OPEN_TYPE_PRECONFIG);
try{
pFtpConnection = pInternetSession->GetFtpConnection(strip,
strusr,strpwd,atoi(strport));
}
catch(CInternetException* pEx)
{
CString sErr;
CString FtpPath;
TCHAR szErr[1024];
pEx->GetErrorMessage(szErr, 1024);
sErr.Format( "连接FTP失败:%s", szErr );
AfxMessageBox(sErr);
pEx->Delete();
}
CString FtpPath;
m_ftpfilelst.ResetContent();
CFtpFileFind ftpfind(pFtpConnection);
BOOL bfind=ftpfind.FindFile(FtpPath);
while(bfind)
{
bfind=ftpfind.FindNextFile();
CString strpath=ftpfind.GetFileURL();
if(ftpfind.IsDirectory() )
{
m_ftpfilelst.AddString(strpath + " 文件夹");
CString sTemp ;
CString sLocalTemp ;
CString LocalPath ;
CString sTempFtpPath ;
sTemp.Empty();
sTemp = ftpfind.GetFileName();
sLocalTemp.Empty() ;
LocalPath = "d:\\Program Files\\联创\\";
sLocalTemp = LocalPath + "\\" + sTemp ;
sTemp.Empty();
sTemp = ftpfind.GetFilePath();
CFileStatus rStatus;
downloadfile.SetWindowText(strpath);
CreateDirectory((LPCTSTR)sLocalTemp, NULL);//创建目录
UpdateData(false);
}
else
{
m_ftpfilelst.AddString(strpath + " 文件");
CString sTemp ;
CString sLocalTemp ;
CString LocalPath ;
CString sTempFtpPath ;
sTemp.Empty();
sTemp = ftpfind.GetFileName();
sLocalTemp.Empty() ;
LocalPath = "d:\\Program Files\\联创\\";
sLocalTemp = LocalPath + "\\" + sTemp ;
sTemp.Empty();
sTemp = ftpfind.GetFilePath();
CFileStatus rStatus;
CString csStatus;
downloadfile.SetWindowText(strpath);
pFtpConnection ->GetFile( sTemp, sLocalTemp, true, FILE_ATTRIBUTE_NORMAL, FTP_TRANSFER_TYPE_BINARY, 1);//下载文件
UpdateData(false);
}
m_edit1++;
i++;
m_progress.SetPos(i);
UpdateData(false);
}
m_progress.SetRange(0,i);
m_progress.SetPos(i);
UpdateData(false);
}
以上是我的FTP源程序,请问我要怎么才可以获取FTP上每个文件的大小呢?
问题我已经解决了。
但是我现在想知道怎么获取比如一个文件9M,下载的字节和剩余的字节是多少? 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询