文件拷贝 资源收集

来源:互联网 发布:网络剧发行新方法 编辑:程序博客网 时间:2024/05/16 11:57

文件拷贝

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));    }


0 0