谢谢
23 个解决方案
#1
CopyFile
#2
CopyFile()
#3
拷贝前确认目标目录存在,不存在先CreateDirectory创建目录
#4
http://msdn.microsoft.com/en-us/library/aa363851(VS.85).aspx
#5
CopyFile(
LPCTSTR lpExistingFileName, // name of an existing file
LPCTSTR lpNewFileName, // name of new file
BOOL bFailIfExists
)
第一个参数:源文件的路径
第二个参数:目标路径
第三个参数:true的作用是目标路径下有想拷贝的文件则操作失败,flase则相反
LPCTSTR lpExistingFileName, // name of an existing file
LPCTSTR lpNewFileName, // name of new file
BOOL bFailIfExists
)
第一个参数:源文件的路径
第二个参数:目标路径
第三个参数:true的作用是目标路径下有想拷贝的文件则操作失败,flase则相反
#6
在新目录下需要指定文件名吗?
我怎么没成功的啊
fileName=FileDlg.GetPathName();
fileName.Replace("\\","\\\\");
CString str=m_Path+_T("\\\\"); //m_Path为目录
str.Replace("\\\\","\\"); //注释掉也没用
CopyFile(fileName,str,TRUE);
#7
把硬盘拆下来,放火上烧烧,等烧红了,在放到水里,听到"兹拉"一声,就可以拿出来,接上数据线和电源线,就可以看到文件拷贝过来了
#8
[code=C/C++]/*
fileName.Replace("\\","\\\\");
CString str=m_Path+_T("\\\\"); //m_Path为目录
str.Replace("\\\\","\\"); //注释掉也没用
*/
//这段代码在干吗?
CopyFile(fileName, newFileName, FALSE);
//源文件名:fileName, 目标文件名:newFileName, 目标文件已经存在则覆盖:FALSE[/code]
#9
BOOL CopyFile(LPCTSTR pSrc, LPCTSTR pDst)
{
// 功能:文件复制,如果目的文件存在则覆盖目的文件,可包括目录信息,会自动建立所需的目录
try
{
TCHAR szSrc[MAX_PATH];
memset(szSrc, 0, MAX_PATH);
TCHAR szDst[MAX_PATH];
memset(szDst, 0, MAX_PATH);
lstrcpyn(szSrc, pSrc, MAX_PATH);
lstrcpyn(szDst, pDst, MAX_PATH);
SHFILEOPSTRUCT shFileOp;
memset(&shFileOp, 0, sizeof(SHFILEOPSTRUCT));
shFileOp.hwnd = NULL;
shFileOp.wFunc = FO_COPY;
shFileOp.pFrom = szSrc;
shFileOp.pTo = szDst;
shFileOp.fFlags = FOF_NOCONFIRMATION | FOF_NOCONFIRMMKDIR;
int iRet = SHFileOperation(&shFileOp);
if(iRet != 0)
{
return FALSE;
}
}
catch (...)
{
return FALSE;
}
return TRUE;
}
#10
BOOL a=CopyFile(_T("D:\\l32.dll"),_T("E:\\"),false);
无法复制啊,郁闷
BOOL a=CopyFile(_T("D:\l32.dll"),_T("E:\"),false);这样是出错的啊
无法复制啊,郁闷
BOOL a=CopyFile(_T("D:\l32.dll"),_T("E:\"),false);这样是出错的啊
#11
BOOL a=CopyFile(_T("D:\\l32.dll"),_T("E:\\123.dll"),false);
天啦,文件名都没有,你复制什么啊
天啦,文件名都没有,你复制什么啊
#12
WinExec(_T("copy d:\\123.dll e:\\", SW_HIDE);
#13
11楼ok
#14
fileName=FileDlg.GetPathName();
fileName.Replace("\\","\\\\");
CString str=m_Path+_T("\\\\123.xml"); //m_Path为目录
str.Replace("\\\\","\\"); //注释掉也没用
CopyFile(fileName,str,false);
我这样的不可以的啊
#15
CopyFile(
LPCTSTR lpExistingFileName, // 看清楚参数类型,不能用CString,强制转换下
LPCTSTR lpNewFileName, // 看清楚参数类型,不能用CString,强制转换下
BOOL bFailIfExists
)
#16
呵呵,不好意思,我看错了楼主的意思,以为是复制文件夹,所以从自己的代码里马上就抽出来给你了,希望不要误导。
复制单个文件的话,那就不用那么复杂了,楼上几位说的都可以的。
复制单个文件的话,那就不用那么复杂了,楼上几位说的都可以的。
#17
不行的
#18
BOOL a=CopyFile(_T("D:\\l32.dll"),_T("E:\\"),false);
//文件名在哪里?
BOOL a = CopyFile(_T(“D:\\132.dll"), _T("E:\\132.dll", FALSE);
//文件名在哪里?
BOOL a = CopyFile(_T(“D:\\132.dll"), _T("E:\\132.dll", FALSE);
#19
是我为了简单写丢了
现在我发现复制不了,是因为目的不能用相对路径的(我的目录是从对话框发消息接受的,我在主框上操作的)
现在很是不知道怎么将相对路径转为绝对路径的
#20
现在我发现复制不了,是因为目的不能用相对路径的(我的目录是从对话框发消息接受的,我在主框上操作的)
//两个文件路径名都是可以用相对路径的。
//是不是相对路径获取的不正确?
//两个文件路径名都是可以用相对路径的。
//是不是相对路径获取的不正确?
#21
应该是正确的,因为在对话框里我获得后在下面新建了个目录,成功
再传到主框架,当前目录居然变成了复制文件的所在位置,所以整个目录都找不到了
#22
GetLastError()什么错?
#23
你的相对路径是相对执行文件的?
那么
GetModulePath()后再SetCurrentDirectory(),设回当前目录就可以了。
#1
CopyFile
#2
CopyFile()
#3
拷贝前确认目标目录存在,不存在先CreateDirectory创建目录
#4
http://msdn.microsoft.com/en-us/library/aa363851(VS.85).aspx
#5
CopyFile(
LPCTSTR lpExistingFileName, // name of an existing file
LPCTSTR lpNewFileName, // name of new file
BOOL bFailIfExists
)
第一个参数:源文件的路径
第二个参数:目标路径
第三个参数:true的作用是目标路径下有想拷贝的文件则操作失败,flase则相反
LPCTSTR lpExistingFileName, // name of an existing file
LPCTSTR lpNewFileName, // name of new file
BOOL bFailIfExists
)
第一个参数:源文件的路径
第二个参数:目标路径
第三个参数:true的作用是目标路径下有想拷贝的文件则操作失败,flase则相反
#6
在新目录下需要指定文件名吗?
我怎么没成功的啊
fileName=FileDlg.GetPathName();
fileName.Replace("\\","\\\\");
CString str=m_Path+_T("\\\\"); //m_Path为目录
str.Replace("\\\\","\\"); //注释掉也没用
CopyFile(fileName,str,TRUE);
#7
把硬盘拆下来,放火上烧烧,等烧红了,在放到水里,听到"兹拉"一声,就可以拿出来,接上数据线和电源线,就可以看到文件拷贝过来了
#8
[code=C/C++]/*
fileName.Replace("\\","\\\\");
CString str=m_Path+_T("\\\\"); //m_Path为目录
str.Replace("\\\\","\\"); //注释掉也没用
*/
//这段代码在干吗?
CopyFile(fileName, newFileName, FALSE);
//源文件名:fileName, 目标文件名:newFileName, 目标文件已经存在则覆盖:FALSE[/code]
#9
BOOL CopyFile(LPCTSTR pSrc, LPCTSTR pDst)
{
// 功能:文件复制,如果目的文件存在则覆盖目的文件,可包括目录信息,会自动建立所需的目录
try
{
TCHAR szSrc[MAX_PATH];
memset(szSrc, 0, MAX_PATH);
TCHAR szDst[MAX_PATH];
memset(szDst, 0, MAX_PATH);
lstrcpyn(szSrc, pSrc, MAX_PATH);
lstrcpyn(szDst, pDst, MAX_PATH);
SHFILEOPSTRUCT shFileOp;
memset(&shFileOp, 0, sizeof(SHFILEOPSTRUCT));
shFileOp.hwnd = NULL;
shFileOp.wFunc = FO_COPY;
shFileOp.pFrom = szSrc;
shFileOp.pTo = szDst;
shFileOp.fFlags = FOF_NOCONFIRMATION | FOF_NOCONFIRMMKDIR;
int iRet = SHFileOperation(&shFileOp);
if(iRet != 0)
{
return FALSE;
}
}
catch (...)
{
return FALSE;
}
return TRUE;
}
#10
BOOL a=CopyFile(_T("D:\\l32.dll"),_T("E:\\"),false);
无法复制啊,郁闷
BOOL a=CopyFile(_T("D:\l32.dll"),_T("E:\"),false);这样是出错的啊
无法复制啊,郁闷
BOOL a=CopyFile(_T("D:\l32.dll"),_T("E:\"),false);这样是出错的啊
#11
BOOL a=CopyFile(_T("D:\\l32.dll"),_T("E:\\123.dll"),false);
天啦,文件名都没有,你复制什么啊
天啦,文件名都没有,你复制什么啊
#12
WinExec(_T("copy d:\\123.dll e:\\", SW_HIDE);
#13
11楼ok
#14
fileName=FileDlg.GetPathName();
fileName.Replace("\\","\\\\");
CString str=m_Path+_T("\\\\123.xml"); //m_Path为目录
str.Replace("\\\\","\\"); //注释掉也没用
CopyFile(fileName,str,false);
我这样的不可以的啊
#15
CopyFile(
LPCTSTR lpExistingFileName, // 看清楚参数类型,不能用CString,强制转换下
LPCTSTR lpNewFileName, // 看清楚参数类型,不能用CString,强制转换下
BOOL bFailIfExists
)
#16
呵呵,不好意思,我看错了楼主的意思,以为是复制文件夹,所以从自己的代码里马上就抽出来给你了,希望不要误导。
复制单个文件的话,那就不用那么复杂了,楼上几位说的都可以的。
复制单个文件的话,那就不用那么复杂了,楼上几位说的都可以的。
#17
不行的
#18
BOOL a=CopyFile(_T("D:\\l32.dll"),_T("E:\\"),false);
//文件名在哪里?
BOOL a = CopyFile(_T(“D:\\132.dll"), _T("E:\\132.dll", FALSE);
//文件名在哪里?
BOOL a = CopyFile(_T(“D:\\132.dll"), _T("E:\\132.dll", FALSE);
#19
是我为了简单写丢了
现在我发现复制不了,是因为目的不能用相对路径的(我的目录是从对话框发消息接受的,我在主框上操作的)
现在很是不知道怎么将相对路径转为绝对路径的
#20
现在我发现复制不了,是因为目的不能用相对路径的(我的目录是从对话框发消息接受的,我在主框上操作的)
//两个文件路径名都是可以用相对路径的。
//是不是相对路径获取的不正确?
//两个文件路径名都是可以用相对路径的。
//是不是相对路径获取的不正确?
#21
应该是正确的,因为在对话框里我获得后在下面新建了个目录,成功
再传到主框架,当前目录居然变成了复制文件的所在位置,所以整个目录都找不到了
#22
GetLastError()什么错?
#23
你的相对路径是相对执行文件的?
那么
GetModulePath()后再SetCurrentDirectory(),设回当前目录就可以了。