如果从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);
此问题由钱峰回答。
| |
|
|
| |
|
|