文件拷贝 资源收集

文件拷贝

http://www.codeproject.com/Articles/6570/Copy-Move-and-Delete-files-and-directories-without

http://download.csdn.net/detail/career2011/3657624



    SHCreateDirectoryEx(NULL,"E:\\Fun\\新建文件夹",NULL);
    WIN32_FIND_DATA FindFileData;
    HANDLE hFile = NULL;
    stack<string> stkFilePath;
    stkFilePath.push(m_strInput);
    while (!stkFilePath.empty())
    {
        string filePath = stkFilePath.top();
        stkFilePath.pop();
        if (filePath.rfind('\\') != 0)
        {
            filePath.append("\\");
        }
        filePath.append("*.*");
        hFile = ::FindFirstFile(filePath.c_str(),&FindFileData);
        if (INVALID_HANDLE_VALUE == hFile)
        {
            continue;
        }
        do 
        {
            if ( (FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) && 
                !((FindFileData.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN) ||
                (FindFileData.dwFileAttributes & FILE_ATTRIBUTE_SYSTEM)))
            {
                if (0 == strcmp(FindFileData.cFileName, ".") ||
                    0 == strcmp(FindFileData.cFileName, ".."))
                {
                    continue;
                }
                filePath = filePath.assign(filePath,0,filePath.rfind('\\'));
                filePath = filePath + "\\" + FindFileData.cFileName;
                string currPath = filePath.substr(m_strInput.length());
                stkFilePath.push(filePath);
                string strDst = m_strOutPut;
                strDst.append(currPath);
                if (!CreateDirectory(strDst.c_str(),NULL) && GetLastError() != 183)
                {
                    continue;
                }
            }
            else
            {
                 filePath = filePath.assign(filePath,0,filePath.rfind('\\'));
                 filePath = filePath + "\\" + FindFileData.cFileName;
            }
        } while (FindNextFile(hFile, &FindFileData));
    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值