mfc复制文件夹
A. 怎么用C++ MFC 复制文件
你是不是说的复制文件?是的话方法多的很。
比如要复制C:\cmd.exe至D:\dir\2下,并重命名为cmd_new.exe,方法如下:
system(" c:\\cmd.exe d:\\dir\\2\\cmd_new.exe");
就相当于是在执行MS-DOS命令。这是在控制台下使用的,不过我想你应该够用了。
在MFC下可以用CopyFile()函数,定义如下:
BOOL CopyFile(
LPCTSTR lpExistingFileName,
// pointer to name of an existing file
LPCTSTR lpNewFileName, // pointer to filename to to
BOOL bFailIfExists // flag for operation if file exists
);
B. mfc 如何复制文件到文件夹
主要有两个难点:
1、如何选择文件;
2、选择好文件之后,如果复制;
1st、关于文件选择,可参考下面这段代码:
CString CDcPackerDlg::BootOpenDialog() //返回选择的文件名称
{
CString strFile = _T("");
CFileDialog dlgFile(TRUE, NULL, NULL, OFN_HIDEREADONLY, _T("Describe Files (*.cfg)|*.cfg|All Files (*.*)|*.*||"), NULL);
if (dlgFile.DoModal())
{
strFile = dlgFile.GetPathName();
}
return strFile;
}
//加载文件按钮
void CDcPackerDlg::OnBnClickedSelectdec()
{
// TODO: Add your control notification handler code here
m_strDescPath = ""; //类的成员变量
//"打开文件"对话框,选择文件,返回其路径
m_strDescPath = BootOpenDialog();
}
2nd、文件复制:
2.1 获得程序目录
CString strPath = "", strDir = "";
char filepath[MAX_PATH];
GetMoleFileName(NULL, filepath, MAX_PATH);
strDir.Format("%s", filepath);
strPath = strDir.Left(strDir.ReverseFind('\\'));
2.2 复制文件
在MFC下可以用CopyFile()函数,定义如下:
BOOL CopyFile(
LPCTSTR lpExistingFileName, //原文件地址,包括文件名
LPCTSTR lpNewFileName, ////目的文件地址,包括文件名
BOOL bFailIfExists //如果目的文件存在的操作
);
3rd、自己把上面给的代码组装一下,就可以满足你的要求了。
打字不易,如满意,望采纳。
C. MFC怎么实现将源文件复制到要保存的目标路径
你好!
先使用目标路径创建文件,再打开源文件,do{读源文件,写目标文件}while(!endoffile(源文件))
仅代表个人观点,不喜勿喷,谢谢。
D. MFC 文件选择 复制到固定文件夹
CFileDialogfld(TRUE,NULL,NULL,OFN_READONLY,"所有文件|*.*||",this);
if(IDOK==fld.DoModal())
{
CStringfpath=fld.GetPathName();
CStringtpath=_T("D:\");//固定文件夹
tpath+=fld.GetFileName();
::CopyFile(fpath,tpath,TRUE);
}
E. MFC中Copyfile的问题。
1.不信你可以看看,系统里的所有文件夹都是只读属性,这个没关系;
2.CopyFile只能拷贝文件,不能拷贝文件夹;
3.若要拷贝文件夹,可参考如下方法:
BOOL CCheckFileDlg::CopyDir(CString strSrcPath, CString strDstPath)
{ // 创建目标文件夹
CreateDirectory(strDstPath,NULL);
CFileFind finder;
// 打开指定的文件夹进行搜索
BOOL bWorking = finder.FindFile(strSrcPath + "\\" + "*.*");
while(bWorking)
{
// 从当前目录搜索文件
bWorking = finder.FindNextFile();
CString strFileName = finder.GetFileName();
CString strSrc = strSrcPath + "\\" + strFileName;
CString strDst = strDstPath + "\\" + strFileName;
// 判断搜索到的是不是"."和".."目录
if(!finder.IsDots())
{
// 判断搜索到的目录是否是文件夹
if(finder.IsDirectory())
{
// 如果是文件夹的话,进行递归
if(!CopyDir(strSrc, strDst))
return false;
}
else
{
// 如果是文件,进行复制
if(!CopyFile(strSrc, strDst, FALSE))
return false;
}
}
}
return true;
}
F. 怎么将mfc71.dll文件复制到C:\WINDOWS\system32
右键你要复制的文件。在其中选择复制。然后把窗口转到
C盘
WINDOWS文件夹下的
SYSTEM32
夹下后再粘贴就OK了。有的DLL库不需要注册。只要拷进去就能用。
G. MFC CopyFile()复制文件时路径问题
你的写法是不是有问题啊?试试仿照我这个写呢:
CFileDialog dlg(TRUE);// TRUE为open对话框,FALSE 为 Save As 对换框
if(dlg.DoModal()==IDOK)
{
CString str=dlg.GetPathName();
MessageBox(L"选择保存的路径是:" + str);
}
这是令一个方法,也拿去试试。
我直接把自己的代码贴过来了,没有怎么改,相信你能看得懂,知道哪些有用,哪些没用,偷个小懒,嘿嘿!
BROWSEINFO bBinfo;
memset(&bBinfo,0,sizeof(BROWSEINFO));// 定义结构并初始化
TCHAR strTmp[255];
LPITEMIDLIST lpDlist;
bBinfo.hwndOwner = m_hWnd;// 设置对话框所有者句柄
bBinfo.lpszTitle = L"请选择拷贝的源路径:";
bBinfo.ulFlags = BIF_RETURNONLYFSDIRS;// 设置标志只允许选择目录
// 用来保存返回信息的IDList,使用SHGetPathFromIDList函数转换为字符串
lpDlist = SHBrowseForFolder(&bBinfo);// 显示选择对话框
if (lpDlist != NULL)
{
SHGetPathFromIDList(lpDlist,strTmp);// 把项目标识列表转化成目录
TRACE(strTmp);
m_strFromPath = strTmp;
UpdateData(FALSE);
}
H. MFC ListCtrl如何复制文件到另一个文件夹
List Ctrl是一个多行控件,你是希望将里面的内容复制到另外的文件夹中?
如果是这样的话,首先你要通过GetItemText将每行文本取出来保存在字符串中,然后只需要利用文件操作接口将字符串写在文件里面即可;
如果你是希望点击里面某项实现复制某个文件到另外的文件夹中,只需要在Click函数中打开文件选择窗口,将获取的文件调用文件保存接口保存在另外的文件夹即可
I. 用mfc如何实现将一个文件拷贝到另一个文件夹中例如:C:\WINDOWS\a.txt中的a.txt文件拷贝到D:\Program
很多方法简单的就是用CopyFile(原来的路径,要的新的路径);你可以查看对应的MSDN如CopyFile(“c:\\windows\\a.txt”,"d:/program/a.txt")
J. MFC文件复制问题
CopyFile的参数是:
CopyFile(已经存在的源文件路径, 目的文件路径, 当目的文件已经存在是否覆盖);
第三个参数为TRUE时,当目的文件路径已存在时(即已经有此文件),不覆盖,函数返回错误(非0)
当第三参数为FALSE时,如果目的文件路径已存在,则覆盖此文件。
参考MSDN:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa363851(v=vs.85).aspx
所以建议你:
1. 查一下 "E:\\图片" 是否已经存在?(似乎你给了个目录名),改成:"E:\\new.jpg" 看看是否解决。
2. 源文件是否存在?