1.请问如何新建一个目录.
2.如何把一个文件夹从一个目录下移动或拷贝到另一个文件夹中.
保证两天内散分结帖,谢谢!

解决方案 »

  1.   

    2:SetCurrentDirectory("yourDir");
    CopyFile("sourceFile","dFile",false);//false或者true是决定是否覆盖重名文件的
      

  2.   

    2:
    或者这样:
    SHFILEOPSTRUCT shfile;
    shfile.hwnd = this->m_hWnd;
    shfile.wFunc = FO_MOVE;
    shfile.pFrom = "c:\\dir1";
    shfile.pTo = "c:\\dir2";
    shfile.fFlags = FOF_RENAMEONCOLLISION|FOF_SILENT;
    shfile.fAnyOperationsAborted = false; 
    ::SHFileOperation(&shfile);
      

  3.   

    CreateDirectory,CopyFile应该就可以搞定了
      

  4.   

    简单点就用ShellExecute比如2:
    ShellExecute(NULL, "copy c:\\dir1 c:\\dir2\\", NULL, ...
      

  5.   

    新建目录用CreateDirectory,移动文件用MoveFile,copy文件用CopyFile
    以上函数都是API函数,具体细节详情请见msdn
      

  6.   

    补充一下:
    如果是移动这样:
    MoveFile("ExistingFileName","NewFileName");
    当然移动也可以这样做先copyfile到新文件再deletefile原文件
      

  7.   

    1  CreateDirectory("c:\\1",NULL);//在c盘建文件夹1,
    2  SetCurrentDirectory("c;\\1");
    CopyFile("sourceFile","dFile",false);//false或者true是决定是否覆盖重名文件的,把sourceFile copy到dFile。
      

  8.   

    /*
    函数:文件移动、拷贝shell操作
    */
    void CIPPhoneDlg::OnSaveOp(BOOL m_bSorC)
    {
        CString m_strRDir;
    LPMALLOC pMalloc;
    BROWSEINFO bi;
        CString pszTemp;
    if(SUCCEEDED(SHGetMalloc(&pMalloc)))
    {
    ZeroMemory(&bi,sizeof(bi));
    char pszDirName[MAX_PATH];
    LPITEMIDLIST pidl;
    bi.hwndOwner = ::AfxGetMainWnd()->GetSafeHwnd();
    bi.pidlRoot = NULL;
    bi.pszDisplayName = pszDirName;
    bi.lpszTitle = _T("选择保存的目录");
    bi.ulFlags = BIF_RETURNFSANCESTORS | BIF_RETURNONLYFSDIRS;
    bi.lpfn = NULL;
    bi.lParam = 0;

    if((pidl = ::SHBrowseForFolder(&bi)) != NULL)
    {
    if (::SHGetPathFromIDList(pidl, pszDirName))


    pszTemp=pszDirName;

    }
    pMalloc->Free(pidl);
    }
    pMalloc->Release();
    }

    /////////////////////////////////////////////////////
    SHFILEOPSTRUCT lpFileOp;
    lpFileOp.hwnd=::AfxGetMainWnd()->GetSafeHwnd();

    if(m_bSorC)
    {
    lpFileOp.wFunc=FO_COPY;
    }
    else
    {
    lpFileOp.wFunc=FO_MOVE;
    }
    for(int ii=0;ii<m_listVMB.GetItemCount();ii++)
    {   int iState;
    iState=m_listVMB.GetItemState(ii,LVIS_SELECTED);
    if(iState!=0)
    {
    CString str;
    str=m_listVMB.GetItemText(ii,2);

    str.Replace(":","_");
    str+=".wav";
    CString path=m_strWorkPath+"vmailbox\\";
    path+=str;

    str=path;            

    char dir[256];
    sprintf(dir,"%s%c",str,NULL);
    lpFileOp.pFrom=dir;              
    lpFileOp.pTo=pszTemp;              
    lpFileOp.fFlags=FOF_ALLOWUNDO;
    lpFileOp.fAnyOperationsAborted=TRUE;     
    lpFileOp.hNameMappings=NULL;
    lpFileOp.lpszProgressTitle=NULL;
    int rval=SHFileOperation(&lpFileOp);
    if(rval==0)
    {
    if(lpFileOp.fAnyOperationsAborted==TRUE)
    {
    MessageBox("已经取消了操作","提示信息",MB_OK); 
    }

    }
    }
    }
    }