有时候,用下载工具下载网络文件需要等待很久,不知道是否有网络资源,这是就需要判断网络文件是否存在。下面我用VC++6.0编写出来。
新建一个MFC对话框程序,添加文本编辑框、按钮控件,ID分别设为IDC_EDIT_Link,IDC_BTN_CHECK
程序代码:
//添加头文件 #include <afxinet.h>
void CJudgeNetFileDlg::OnBtnCheck()
{
// TODO: Add your control notification handler code here
CString link;
GetDlgItem(IDC_EDIT_LINK)->GetWindowText(link); //获得填写的文件链接
//MessageBox(str);
CInternetSession sess ;
DWORD dwFlag = INTERNET_FLAG_TRANSFER_BINARY|INTERNET_FLAG_DONT_CACHE|INTERNET_FLAG_RELOAD ;
CHttpFile *pF = (CHttpFile*)sess.OpenURL(link,1, dwFlag);
ASSERT(pF);
if(!pF)//判断HttpFile指针是否为空就可以判断网络文件是否存在
{
AfxThrowInternetException(1);
}
CString str;
pF->QueryInfo (HTTP_QUERY_STATUS_CODE, str);//HTTP_QUERY_STATUS_CODE查询状态信息,这里可以查询文件的大小等等,具体的在HTTP_QUERY_STATUS_CODE上右键,转到定义,有很多可选项
int b = _ttoi(str);
if (b==404)
{
AfxMessageBox("网络文件不存在!");
}
else
{
AfxMessageBox("网络文件存在!");
}
}
VC++6.0编译通过!