代码如下,如何在里面通过后缀名判断是否是zxp文件
char  file_name[MAX_PATH];
//CString FileExt = file_name.GetExtension();
UINT nFileCount = ::DragQueryFile(hDropInfo, 0xffffffff, NULL, 0); for (int i=0;i<nFileCount;i++)
{
::DragQueryFile(hDropInfo, i, (LPWSTR)file_name, MAX_PATH);
}
::DragFinish(hDropInfo);
SetDlgItemText(IDC_FILE_PATH,(LPCTSTR)file_name);
CDialog::OnDropFiles(hDropInfo);

CString fzip;
fzip.Format((const wchar_t*)L"%s.zxp",file_name);
SetDlgItemText(IDC_EDIT_PATH,fzip)

解决方案 »

  1.   

    CString str = "1212121212.zxp"; int pos = str.ReverseFind('.'); CString postfix = str.Right(str.GetLength()-pos-1); if(postfix == _T("zxp"))
    {
    MessageBox("ok");
    }
      

  2.   

    你的file_name已经是个完整的路径名了,为什么还要做这一步
    fzip.Format((const wchar_t*)L"%s.zxp",file_name);???如果你拖入的文件时个zxp的文件,那么file_name就是个完整的路径名:C:\xx\1.zxp,你判断下后4位为.zxp即可不是.zxp就不是zxp文件。
      

  3.   

    这个是显示在另一个编辑框的的压缩路径和解压路径,这是压缩为zxp文件的路径
      

  4.   

    CString str = CString(file_name);
    if(str.Mid(str.ReverseFind('.'))==".zxp")
    {
    //zxp文件
    }
      

  5.   

    没反映,全都生成了.zxp
    char  file_name[MAX_PATH];
    UINT nFileCount = ::DragQueryFile(hDropInfo, 0xffffffff, NULL, 0);
    for (int i=0;i<nFileCount;i++)
    {
    ::DragQueryFile(hDropInfo, i, (LPWSTR)file_name, MAX_PATH);
    }
    ::DragFinish(hDropInfo);
    SetDlgItemText(IDC_FILE_PATH,(LPCTSTR)file_name);
    CDialog::OnDropFiles(hDropInfo); CString fzip;
    CString str = CString(file_name);
    if(str.Mid(str.ReverseFind('.'))==".zxp")
    {
    fzip.Format((const wchar_t*)L"%s",file_name);
    SetDlgItemText(IDC_EDIT_PATH,fzip);
    }else
    {
    fzip.Format((const wchar_t*)L"%s.zxp",file_name);
    SetDlgItemText(IDC_EDIT_PATH,fzip);
    }
      

  6.   

    CString str = (CString)(LPWSTR)file_name;
      

  7.   

    还是一样的,全是.zxp,咋回事??
      

  8.   

    不是吧,我用你的代码试的,没问题啊。char file_name[MAX_PATH];
    UINT nFileCount = ::DragQueryFile(hDropInfo, 0xffffffff, NULL, 0);
    for (int i=0;i<nFileCount;i++)
    {
    ::DragQueryFile(hDropInfo, i, (LPWSTR)file_name, MAX_PATH);
    }
    ::DragFinish(hDropInfo);
    SetDlgItemText(IDC_FILE_PATH,(LPCTSTR)file_name);
    CDialog::OnDropFiles(hDropInfo); CString fzip;
    CString str = (CString)(LPWSTR)file_name;
    if(str.Mid(str.ReverseFind('.'))==".zxp")
    {
    fzip.Format((const wchar_t*)L"%s",str.Mid(0,str.ReverseFind('.')));
    SetDlgItemText(IDC_EDIT_PATH,fzip);
    }else
    {
    fzip.Format((const wchar_t*)L"%s.zxp",file_name);
    SetDlgItemText(IDC_EDIT_PATH,fzip);
    }