简单文件管理系统Word格式文档下载.docx
- 文档编号:13538084
- 上传时间:2022-10-11
- 格式:DOCX
- 页数:23
- 大小:198.90KB
简单文件管理系统Word格式文档下载.docx
《简单文件管理系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《简单文件管理系统Word格式文档下载.docx(23页珍藏版)》请在冰豆网上搜索。
第一步:
复制文件夹可以在一个对话框中完成,这样必然需要添加一个类CCopyDlg。
第二步:
在该对话框上设置两个按钮,一个按钮来选择源文件夹,保存源文件路径;
一个按钮来选择目标文件夹,保存目标文件路径。
选择路径的方法可以与步骤的方法相同。
第三步:
重写确定消息应用程序来实现从一个目录复制到另一个目录的功能(copyFiles)。
下面是copyFiles函数的实现原理:
首先打开指定的文件夹进行搜索,再利用一个while循环,从当前目录搜索文件,判断搜索到的是不是"
."
和"
.."
目录,如果是文件夹的话,进行递归;
如果是文件,进行复制。
复制文件;
复制文件跟复制文件夹一样也需要创建一个对话框,添加一个类。
同理也在对话框上添加两个按钮,分别接收源路径,和目标路径。
不过接收的方法需要通过CFileDialog选择对话框,而不能再和一样啦。
复制文件,vc中有已有的函数CopyFile。
参数是两个复制的路径。
删除文件夹
在删除文件夹之前,首先要删除文件夹下的所有文件,再删除文件夹。
该功能的实现也是利用递归,先判断文件夹下是否有文件,若有,则删除,没有则删除文件夹,返回。
删除文件
定义一个类CMyFileDialog继承CFileDialog而来,重写OnInitDialog函数来设置对话框中按钮的文本。
创建一个CMyFileDialog对象,在删除文件对话框中,选择想要删除的文件,调用DeleteFile函数进行文件的删除。
退出程序
设置一个退出子菜单,发送一个WM_CLOSE消息,关闭程序退出。
三、数据结构和流程图
该程序没有使用到复杂的数据结构,是基于MFCAppWizard应用程序。
主流程图:
为使流程图简单些,将创建,复制,删除放一起,用“|”字符连接起来,代表“或”的意
选择文件夹路径的流程图:
四、源程序
(1)定制一个菜单,添加5个子菜单,并分别设置它们的Popup,包括:
创建(true)、复制(true)、删除(true)、帮助、退出(false)。
在子菜单中添加它们的菜单项。
如下所示:
创建:
文件夹,TXT,WORD,EXCEL
复制:
删除:
帮助:
关于DMS(&
A)...
退出
(2)创建文件夹
voidCMainFrame:
:
OnBuildFolder()
{
//选择新建文件夹的路径
UpdateData(TRUE);
charszDir[MAX_PATH];
BROWSEINFObi;
ITEMIDLIST*pidl;
bi.hwndOwner=this->
m_hWnd;
bi.pidlRoot=NULL;
bi.pszDisplayName=LPWSTR(szDir);
bi.lpszTitle=TEXT("
新建文件夹"
);
bi.ulFlags=BIF_EDITBOX|BIF_VALIDATE|BIF_NEWDIALOGSTYLE;
bi.lpfn=NULL;
bi.lParam=0;
bi.iImage=0;
pidl=SHBrowseForFolder(&
bi);
if(pidl==NULL)
return;
if(!
SHGetPathFromIDList(LPCITEMIDLIST(pidl),LPWSTR(szDir)))
else
m_strPath=szDir;
UpdateData(FALSE);
}
(3)创建文件的函数
build(CStringtitle,CStringfilter,CStringdefExt)
CFileDialogfileDlg(FALSE);
fileDlg.m_ofn.lpstrTitle=title;
fileDlg.m_ofn.lpstrFilter=filter;
fileDlg.m_ofn.lpstrDefExt=defExt;
if(IDOK==fileDlg.DoModal())
{//创建一个文档
CFilefile(fileDlg.GetFileName(),CFile:
modeCreate);
file.Close();
}
创建txt文件:
OnBuildTxt()
//创建一个Txt文档
build(TEXT("
新建Txt文档"
),TEXT("
TextFiles(*.txt)\0*.txt\0"
),
TEXT("
txt"
));
创建word文档:
OnBuildWord()
//创建一个Word文档
新建Word文档"
TextFiles(*.doc)\0*.doc\0"
doc"
创建excel工作表:
OnBuildExcel()
//创建一个Excel工作表
新建Excel工作表"
TEXT("
TextFiles(*.xls)\0*.xls\0"
xls"
创建txt、word、excel都是调用build函数。
(4)复制文件夹
添加一个类:
CCopyDlg;
在对话框上添加两个按钮,“选择源文件夹”,“选择目标文件夹”;
选择路径的函数:
CStringCCopyDlg:
selectPath(CStringpath)
//选择路径
CStringstr;
bi.pszDisplayName=LPTSTR(szDir);
bi.lpszTitle=path;
bi.ulFlags=BIF_EDITBOX|BIF_VALIDATE;
returnCString();
SHGetPathFromIDList(pidl,LPTSTR(szDir)))
else
str=szDir;
returnstr;
分别对这两个按钮进行响应:
voidCCopyDlg:
OnBnClickedButton1()
//获得源文件夹的路径
m_strBgnPath=selectPath(TEXT("
选择源文件夹"
OnBnClickedButton2()
//获得目标文件夹的路径
m_strEndPath=selectPath(TEXT("
选择目标文件夹"
再添加一个复制函数:
BOOLcopyFiles(CStringstrSrcPath,CStringstrDstPath)
{//创建目标文件夹
CreateDirectory(strDstPath,NULL);
CFileFindfinder;
//打开指定的文件夹进行搜索
BOOLbWorking=finder.FindFile(strSrcPath+TEXT("
\\*.*"
while(bWorking)
{
//从当前目录搜索文件
bWorking=finder.FindNextFile();
CStringstrFileName=finder.GetFileName();
CStringstrSrc=strSrcPath+TEXT("
\\"
)+strFileName;
CStringstrDst=strDstPath+TEXT("
//判断搜索到的是不是"
目录
finder.IsDots())
//判断搜索到的目录是否是文件夹
if(finder.IsDirectory())
//如果是文件夹的话,进行递归
copyFiles(strSrc,strDst))
returnfalse;
//如果是文件,进行复制
CopyFile(strSrc,strDst,FALSE))
}
returntrue;
对确定按钮的消息响应函数重写:
OnBnClickedOk()
copyFiles(m_strBgnPath,m_strEndPath);
OnOK();
最后对菜单项:
复制文件夹的响应:
OnCopyFolder()
//弹出一个复制文件夹的对话框
CCopyDlgdlg;
dlg.DoModal();
(5)复制txt文件
CTxtDlg;
先对两个按钮,"
选择源Txt文件"
"
选择目的Txt文件"
进行响应:
voidCTxtDlg:
CFileDialogdlg(1,NULL,NULL,NULL,TEXT("
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简单 文件 管理 系统