ImageVerifierCode 换一换
格式:DOC , 页数:24 ,大小:420.50KB ,
资源ID:3707761      下载积分:20 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-3707761.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(简单文件管理系统.doc)为本站会员(11****ws)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

简单文件管理系统.doc

1、1目录一、题目和要求 .2二、相关原理分析和总的设计思想 .2三、数据结构和流程图 .4四、源程序 .6五、运行结果 .18六、自我评析与总结 .242一、题目和要求(1) 题目:简单文件管理系统的设计及实现(2) 要求:根据文件系统的相关原理,设计并用 C 或 C+编程实现一个类似 Windows 系统中“我的电脑”功能的文件管理系统,该文件系统可以对系统中所有文件进行管理,同时具有创建新文件、删除文件、复制文件、创建文件夹等功能。二、相关原理分析和总的设计思想基于 MFC AppWizard 框架的程序定制一个菜单,有添加四个子菜单,创建,复制,删除,退出,在前三个子菜单中添加四个菜单项,

2、文件夹,TXT,WORD,EXCEL。每个菜单项对应着一种功能。且复制选择路径都是基于对话框,操作方便,简洁明了。创建文件夹; 1要创建文件夹,首先要选择文件夹创建的位置,可以用到浏览文件夹的函数 SHBrowseForFolder 和两个结构 BROWSEINFO 和ITEMIDLIST,要想得到文件夹路径可以用SHGetPathFromIDList,当然程序要想拥有建立文件夹的功能,应该设置 BROWSEINFO 对象的 ulFlags 的参数有 BIF_NEWDIALOGSTYLE ;创建文件; 2不管是创建 txt 文件,word 文件,excel 文件原理都一样。可以写一个 buil

3、d 函数,提供几个参数:标题 title, 路径filter,扩展名 defExt。这样创建文件时,可以根据标题,路径,扩展名的不同调用 build 函数,达到不同功能的目的在 build 函数体中使用 CFileDialog 定义一个对象来创建文件。复制文件夹; 3第一步:复制文件夹可以在一个对话框中完成,这样必然需要添加一个类 CCopyDlg。第二步:在该对话框上设置两个按钮,一个按钮来选择源文3件夹,保存源文件路径;一个按钮来选择目标文件夹,保存目标文件路径。选择路径的方法可以与步骤 的方法相同。 1第三步:重写确定消息应用程序来实现从一个目录复制到另一个目录的功能(copyFiles

4、)。下面是 copyFiles 函数的实现原理:首先打开指定的文件夹进行搜索,再利用一个 while 循环,从当前目录搜索文件,判断搜索到的是不是“.“和“.“目录,如果是文件夹的话,进行递归;如果是文件,进行复制。复制文件; 4复制文件跟复制文件夹一样也需要创建一个对话框,添加一个类。同理也在对话框上添加两个按钮,分别接收源路径,和目标路径。不过接收的方法需要通过 CFileDialog 选择对话框,而不能再和 一样啦。复制文件,vc 中有已有的函数 CopyFile。 1参数是两个复制的路径。删除文件夹 5在删除文件夹之前,首先要删除文件夹下的所有文件,再删除文件夹。该功能的实现也是利用递

5、归,先判断文件夹下是否有文件,若有,则删除,没有则删除文件夹,返回。删除文件 6定义一个类 CMyFileDialog 继承 CFileDialog 而来,重写OnInitDialog 函数来设置对话框中按钮的文本。创建一个 CMyFileDialog 对象,在删除文件对话框中,选择想要删除的文件,调用 DeleteFile 函数进行文件的删除。退出程序 7设置一个退出子菜单,发送一个 WM_CLOSE 消息,关闭程序退出。4三、数据结构和流程图该程序没有使用到复杂的数据结构,是基于 MFC AppWizard应用程序。主流程图:开始选择子菜单创建 复制 删除 退出选择菜单项文件夹T X T

6、W O R D E X C E L消息处理程序消息处理程序消息处理程序消息处理程序结束为使流程图简单些,将创建,复制,删除放一起,用“”字符连接起来,代表“或”的意5选择文件夹路径的流程图:开始U p d a t e D a t a ( T R U E )初始化结构 b ip i d l = = N U L L结束Y! S H G e t P a t h F r o m I D L i s tNYU p d a t e D a t a ( F A L S E )m _ s t r P a t h = s z D i rN6四、源程序(1)定制一个菜单,添加 5 个子菜单,并分别设置它们的Pop

7、up,包括:创建(true)、复制(true)、删除(true)、帮助、退出(false)。在子菜单中添加它们的菜单项。如下所示:创建:文件夹,TXT,WORD,EXCEL复制:文件夹,TXT,WORD,EXCEL删除:文件夹,TXT,WORD,EXCEL帮助:关于 DMS(char szDirMAX_PATH;BROWSEINFO bi;ITEMIDLIST *pidl;bi.hwndOwner = this-m_hWnd;bi.pidlRoot = NULL;bi.pszDisplayName = LPWSTR(szDir);bi.lpszTitle = TEXT(“新建文件夹“);bi.

8、ulFlags = BIF_EDITBOX | BIF_VALIDATE | BIF_NEWDIALOGSTYLE ;bi.lpfn = NULL;bi.lParam = 0;bi.iImage = 0;pidl = SHBrowseForFolder(if(pidl = NULL) return;if(!SHGetPathFromIDList(LPCITEMIDLIST(pidl), LPWSTR(szDir) return;elsem_strPath = szDir;UpdateData(FALSE);7(3)创建文件的函数void CMainFrame:build(CString tit

9、le, CString filter, CString defExt)CFileDialog fileDlg(FALSE);fileDlg.m_ofn.lpstrTitle=title;fileDlg.m_ofn.lpstrFilter=filter;fileDlg.m_ofn.lpstrDefExt=defExt;if(IDOK=fileDlg.DoModal() /创建一个文档CFile file(fileDlg.GetFileName(),CFile:modeCreate);file.Close();创建 txt 文件:void CMainFrame:OnBuildTxt()/创建一个T

10、xt文档build(TEXT(“新建Txt文档“),TEXT(“TextFiles(*.txt)0*.txt0“),TEXT(“txt“);创建 word 文档:void CMainFrame:OnBuildWord()/创建一个Word文档build(TEXT(“新建Word文档“),TEXT(“Text Files(*.doc)0*.doc0“),TEXT(“doc“);创建 excel 工作表:void CMainFrame:OnBuildExcel()/创建一个Excel工作表build(TEXT(“新建Excel工作表“),TEXT(“Text Files(*.xls)0*.xls0

11、“),TEXT(“xls“);创建 txt、word、excel 都是调用 build 函数。(4)复制文件夹8添加一个类:CCopyDlg;在对话框上添加两个按钮, “选择源文件夹” , “选择目标文件夹” ;选择路径的函数:CString CCopyDlg:selectPath(CString path)/选择路径UpdateData(TRUE);char szDirMAX_PATH;CString str;BROWSEINFO bi;ITEMIDLIST *pidl;bi.hwndOwner = this-m_hWnd;bi.pidlRoot = NULL;bi.pszDisplayNa

12、me = LPTSTR (szDir);bi.lpszTitle = path;bi.ulFlags = BIF_EDITBOX | BIF_VALIDATE;bi.lpfn = NULL;bi.lParam = 0;bi.iImage = 0;pidl = SHBrowseForFolder(if(pidl = NULL) return CString();if(!SHGetPathFromIDList(pidl, LPTSTR (szDir) return CString();else str = szDir;UpdateData(FALSE);return str;分别对这两个按钮进行响

13、应:void CCopyDlg:OnBnClickedButton1()/获得源文件夹的路径m_strBgnPath=selectPath(TEXT(“选择源文件夹“);9void CCopyDlg:OnBnClickedButton2()/获得目标文件夹的路径m_strEndPath=selectPath(TEXT(“选择目标文件夹“);再添加一个复制函数:BOOL copyFiles(CString strSrcPath, CString strDstPath) / 创建目标文件夹CreateDirectory(strDstPath,NULL);CFileFind finder;/ 打开指

14、定的文件夹进行搜索BOOL bWorking = finder.FindFile(strSrcPath + TEXT(“*.*“);while(bWorking)/ 从当前目录搜索文件bWorking = finder.FindNextFile();CString strFileName = finder.GetFileName();CString strSrc = strSrcPath + TEXT(“) + strFileName;CString strDst = strDstPath + TEXT(“) + strFileName;/ 判断搜索到的是不是“.“和“.“目录if(!find

15、er.IsDots()/ 判断搜索到的目录是否是文件夹if(finder.IsDirectory()/ 如果是文件夹的话,进行递归if(!copyFiles(strSrc, strDst) return false;else/ 如果是文件,进行复制if(!CopyFile(strSrc, strDst, FALSE)return false;10 return true;对确定按钮的消息响应函数重写:void CCopyDlg:OnBnClickedOk()copyFiles(m_strBgnPath,m_strEndPath);OnOK();最后对菜单项:复制文件夹的响应:void CMai

16、nFrame:OnCopyFolder()/弹出一个复制文件夹的对话框CCopyDlg dlg;dlg.DoModal();(5)复制 txt 文件添加一个类:CTxtDlg;先对两个按钮,“选择源 Txt 文件“选择目的 Txt 文件“进行响应:void CTxtDlg:OnBnClickedButton1()CFileDialog dlg(1,NULL,NULL,NULL,TEXT(“Text files(*.txt)|*.txt“);dlg.m_ofn.lpstrTitle=TEXT(“选择源Txt文件“);if(dlg.DoModal()=IDOK)m_strBgnPath = dlg.GetPathName();void CTxtDlg:OnBnClickedButton2()CFileDialog fileDlg(FALSE);fileDlg.m_ofn.lpstrTitle=TEXT(“选择目的Txt文件“);

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。