VC 浏览文件和文件夹

// 浏览--文件:

// 浏览--文件
void DecSendData::OnBnClickedBtnScan()
{
    CString szPath = "";
    CFileDialog FDlg(TRUE , ".doc" , NULL , OFN_HIDEREADONLY , "word文件(*.doc)|*.doc|所有文件(*.*) |*.*||" );

    // 显示对话框并使用户可以进行选择
    if(IDOK == FDlg.DoModal())
    {
        // 返回选定文件的完整路径
        szPath.Replace("\\","\\\\");
        szPath = FDlg.GetPathName();

        // 界面显示获取的完整路径
        szDecSendDataPath = szPath;

        UpdateData(false);
    }
}

 

-----------------------------------------------------------------------------------------------------------------------------------

 

// 浏览--文件夹:

// 浏览--文件夹
void DecSendData::OnBnClickedBtnScan()
{
    CString szPath = GetDirectoryPath();
    if (szPath != "")
    {
       szDecSendDataPath = szPath;
       UpdateData(false);
    }
}

// 获取选择的路径
CString DecSendData::GetDirectoryPath()
{
    LPITEMIDLIST pidlRoot=NULL;
    SHGetSpecialFolderLocation(m_hWnd,CSIDL_DRIVES,&pidlRoot);
    BROWSEINFO bi;   //the input parameters needed
    CString strDisplayName;  
    bi.hwndOwner=GetSafeHwnd();   //get handle value of parent window 
    bi.pidlRoot=pidlRoot;   
    bi.pszDisplayName=strDisplayName.GetBuffer(MAX_PATH+1);   //get buffer pointer
    char szLan[32] = {0};
    sprintf(szLan, "%s", "文件夹");
    bi.lpszTitle=szLan;   //set title
    bi.ulFlags=BIF_RETURNONLYFSDIRS;   //set flag
    bi.lpfn=NULL;
    bi.lParam=0;
    bi.iImage=0;   //The above parameters are not related to the settings, better set up,
    //LPITEMIDLIST lpIDList= SHBrowseForFolder(&bi);    //open dialog
    LPITEMIDLIST lpIDList= SHBrowseForFolder(&bi);    //open dialog
    strDisplayName.ReleaseBuffer();   //correspond to GetBuffer()
    char pPath[MAX_PATH];
    CString Str;
    if (lpIDList)
    {
        SHGetPathFromIDList (lpIDList, pPath);
        Str=pPath;
    }
    return Str;
}

有关《文件加浏览(SHBrowseForFolder)》的资料见下面地址:

http://www.cnblogs.com/clingingboy/archive/2011/04/16/2018284.html

 

有关《VC打开浏览文件对话框、浏览文件夹对话框》:

http://www.cnblogs.com/hyangshi/articles/1615324.html

结束。。。。

转载于:https://www.cnblogs.com/xuejianhui/articles/2742319.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值