热情软件屋

 

如果从FileDialog对话框中选择一个文件拷贝到一个指定目录中去


编号:QA004412
建立日期: 2001年9月17日 最后修改日期:2001年9月18日
所属类别:

weiwei:
    操作系统: windows
    编程工具: VC 6.0
    问题: 如何在vc中实现文件的拷贝?
    如果在程序中设定拷贝的文件的路径,我可以做到,但如果从FileDialog对话框中选择一个文件拷贝到一个指定目录中去,怎样设置也不行。即当文件路径为在程序执行过程中选择的时候,不知如何拷贝。
    我用的是:
     char strDst[]="d:\\1\0";
     //设置目的路径确定的可以实现
    当从FileDialog选择文件路径存储到array[0]中的时候,就无法实现文件的拷贝
     char strTitle[]="File copying";
     //进度题头
     SHFILEOPSTRUCT FileOp;
     FileOp.hwnd=m_hWnd;
     FileOp.wFunc=FO_COPY;
     //执行文件拷贝
     // FileOp.pFrom=array[0];
     FileOp.pFrom=strSrc;
     FileOp.pTo=strDst;
     FileOp.fFlags=FOF_ALLOWUNDO;
     FileOp.hNameMappings=NULL;
     FileOp.lpszProgressTitle=strTitle;
    水平: 刚入门

回答:

    通过对话框得到的字符串的目录使用一个斜杠“\”表示的,所以在使用的时候出现了问题中出现的错误。知道这个,我想问题就解决的:)
    主持人:下面是一段正确的例子:
     CFileDialog fdlg(TRUE);
     char array[1000];
    
     fdlg.DoModal();
     strcpy(array, fdlg.GetPathName());
     array[strlen(array) + 1] = 0;
    
     char strDst[]="e:\\1\0";
     //设置目的路径确定的可以实现
     char strTitle[]="File copying";
     //进度题头
     SHFILEOPSTRUCT FileOp;
     FileOp.hwnd = m_hWnd;
     FileOp.wFunc = FO_COPY;
     //执行文件拷贝
     FileOp.pFrom = array;
     FileOp.pTo=strDst;
     FileOp.fFlags=FOF_ALLOWUNDO;
     FileOp.hNameMappings=NULL;
     FileOp.lpszProgressTitle=strTitle;
     SHFileOperation(&FileOp);

此问题由钱峰回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio