Windows Shell 编程

最近在做一个程序,其中用到了Windows Shell编程技术,现在总结一下。。。

关键知识:

SetCurrentDirectory()  Windows API函数

CFileFind 类,CFileFind::FindFile() ,  CFileFind::FindNextFile()等函数

注意:最后使用完CFileFind 要关闭CFileFind::Close()

void CClientFtpDlg::FindLocalFile(void)
{
    FTP_FILE_INFO *pInfo = new FTP_FILE_INFO;  //FTP_FILE_INFO是自定义的类型,将作为消息参数发送

    CFileFind FileFind;
    UINT i = 0;
    CTime time;
    BOOL bContinue;

    //设置当前目录
    ::SetCurrentDirectory(m_LocalDirectory);  //m_LocalDirectory为要搜索的目录地址
   //显示所有该目录下文件
    bContinue=FileFind.FindFile("*.*");
    CString str;
    while (bContinue)
    {
        bContinue=FileFind.FindNextFile();
        if (FileFind.IsHidden()) continue;  //不显示隐藏文件
       
        str=FileFind.GetFileName();
        strcpy(pInfo->sFileName,str);

        FileFind.GetLastWriteTime(time);

        str=time.Format("%x");
        strcpy(pInfo->sFileDate,str);

        if (FileFind.IsDirectory())
        {
            strcpy(pInfo->sFileSize,"");
            pInfo->n_Type=DIRECTORYICON;
            ::SendMessage(this->m_hWnd,WM_SETDIR,(WPARAM)pInfo,(LPARAM)LOCFILE); //发送消息到处理函数
        }
        else
        {
            DWORD i=FileFind.GetLength();  //获得当前文件大小
            if (i>1024)
            {
                str.Format("%d",i/1024);
                str+=" KB";
            }
            else
            {
                str.Format("%d",i);
                str+=" Bytes";
            }
            strcpy(pInfo->sFileSize,str);
            pInfo->n_Type=FILEICON;
            ::SendMessage(this->m_hWnd,WM_SETFILE,(WPARAM)pInfo,(LPARAM)LOCFILE); //发送消息到处理函数

        }

    }
    delete pInfo;
    FileFind.Close();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值