会员注册 | 登录 | 微信快捷登录 支付宝快捷登录 QQ登录 微博登录 | 帮助中心 人人文库renrendoc.com美如初恋!
站内搜索 百度文库

热门搜索: 直缝焊接机 矿井提升机 循环球式转向器图纸 机器人手爪发展史 管道机器人dwg 动平衡试验台设计

   首页 人人文库网 > 资源分类 > DOC文档下载

通信学论文-通用子目录文件显示方法 .doc

  • 资源星级:
  • 资源大小:11.91KB   全文页数:12页
  • 资源格式: DOC        下载权限:注册会员/VIP会员
您还没有登陆,请先登录。登陆后即可下载此文档。
  合作网站登录: 微信快捷登录 支付宝快捷登录   QQ登录   微博登录
友情提示
2:本站资源不支持迅雷下载,请使用浏览器直接下载(不支持QQ浏览器)
3:本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰   

通信学论文-通用子目录文件显示方法 .doc

通信学论文通用子目录文件显示方法在用CHKDS/V对磁盘子目录及子目录文件进行查找时,由于输出显示信息没有分屏显示,很容易错过需要的信息,并且显示信息没有标记出隐藏的子目录名及子目录文件名,这样就对进一步的子目录及文件操作带来许多不便。若辅以管道操作采用CHKDSK/V|MORE,虽然可分屏显示,但等待输出时间过长,而且这时_Break中断被封锁,效果不尽人意。本文针对于此采用截获_Break和分屏缓冲输出技术实现子目录和子目录文件及其属性的显示。一、实现原理子目录和子目录文件的查找是通过C语言函数findfirst和findnext采用递归算法实现的。子目录和子目录文件的属性是根据属性字来判断。属性字格式如下图所示|7|6|5|4|3|2|1|0|第0位只读位取1表示只读第1位隐含位取1表示隐含第2位系统位取1表示系统第3位卷标位取1表示卷标第4位子目录位取1表示子目录第5位归档位取1表示归档第6、7位保留未用在子目录及子目录文件查找的递归调用前,保存_Break标记并封锁_Break中断,在正常结束或截获_Break中断或ESC信号后恢复_Break标记,并恢复指定驱动器的当前子目录、当前驱动器以及当前驱动器的当前子目录。在子目录和子目录文件的分屏缓冲输出显示方面,建立一输出缓冲区BUFFER8025来完成结果信息的分屏缓冲输出。二、程序功能本程序功能有分屏显示指定驱动器缺省时为当前驱动器、指定目录缺省时为当时目录中的指定文件缺省时为.及其所包含的子目录和子目录中的指定文件缺省时为.。对于子目录显示其子目录名及其属性,对于文件显示匹配的文件名、长度、建立时间及属性,最后输出匹配的文件个数及所包含的子目录个数。在查找过程中可按_Break或ESC键退出并返回当前驱动器及其当前目录,若指定驱动器不是当前驱动器则恢复指定驱动器的当前目录。下面举例说明隐藏子目录的查找。假定在驱动器A上建立子目录TEMP,用PCTOOLS或NORTON工具软件将其属性由10改为FF。这样在DOS状态下键入CDTEMP,系统会提示出错。作用CHKDSKA,系统提示CannotCHDIRtoA\TEMP,treepastthispointnotprocessed使用本程序,运行结果认为TEMP为一文件,其属性为HSRALD,表示这是一个子目录,可据此推猜其为一加密子目录,可进一步用NORTON工具软件解密。三、实现实例实例是在386兼容机、BORLANDC3.1集成环境和DOS6.0操作系统支持下调试通过,实现源程序附后。需要指出的不足是,由于findfirst与findnext是通过查找目录项区实现其功能的,所以对一些与FAT表不符的隐藏文件及子目录的方法本程序不能奏效,建议结合CHKDSK使用本程序。另外,本文采用的封锁_Break的方法适用于查找过程,但在屏幕输出过程中不能做到封锁_Break中断。若需在查、屏幕输出过程中均封锁_Break中断,可采用ctrbrk函数另建一个_Break中断服务程序。includeincludeincludeincludeincludeincludeincludedefineESC27defineCtrl_Break3definePAGE_NUMBER22voiddiroperatevoidvoidadd_attribstructffblkvoidfull_screen_operatevoidchardriverMAXDRIVE,dirMAXDIRcharfileMAXFILE,extMAXEXTcharcurdriver,curdirMAXDIRcharolddriver,olddirMAXDIR,workdirMAXDIRcharFN13.intpage_sum0,dir_sum0,file_sum0charbuffer8025charbuffer_pointerbuffercharCtrl_Bresk_flagcharattrib7mainintargc,charargv{curdrivergetdiskgetcwdcurdir,MAXDIRdriver0curdriverAifargc2{printfToomuchparameters\nexit0}ifargc2{fnsplitargv1,driver,dir,file,extifstrcpyfile0{strcpyfile,exr,13strcpyFNfile}ifstrlendriver0{setdisktoupperdriver0Asetdisktoupperdrive0Agetcwdolddir,MAXDIRstrcpyworkdir,dirverifstrlendir0ifstrlendir1strcatworkdir,dir,strlendirelsestrncatworkdir,dir,strlendir1chdirworkdir}}Ctrl_Break_flaggetcbrksetcbrk0dir_operatepustbuffersetcbrrkCtrl_Break_flagifdir_sum10printfNosub_directories.\nelseprintfddirectories.\n,dir_sum1iffile_sum0printfNofiles.\nelseprintfdfiles.\n,file_sumifstrlendriver0{chdirolddir}setdiskcurdriverchdircurdirreturn0}voiddir_operatevoid{structffblkdirmentintdone,p,byte_numunsignedintyear,month,date,hourminutecharpathMAXDIR/begintosearchallpossiblefiles/donefindfirstFN,dirment,0x2fgetcwdpath,MAXPATHdir_sumpage_sumifpage_sumPAGE_NUMBERfull_screen_operate/writeDirectorynameanditsattributeintobuffer/byte_numsprintfbuffer_pointer,Directorys,pathbuffer_poinerbyte_unmbyte_unmsprintfbuffer_pointer,6s\n,attribbuffer_pointerbyte_numwhiledone{page_sumfile_sumifpage_sumPAGE_NUMBERfull_screen_operate/writefilenameanditslength,time,attributeintobuffer/bytp_numsprintfbuffer_pointer,20s8ld,dor,emt.ff_name,dirment.ff_fsizebuffer_pointerbyte_numyeardirment.ff_fdate90x7f80monthdirment.ff_fdate50xfdatedirment.ff_fdate0x1fhourdirment.ff_ftime110x1fminutedirment.ff_ftime50x3fbyte_numsprintfbufferr_Pointer,2d02d2d,month,date,yearbuffer_pointerbyte_numifhour12{byte_numsprintfbuffer_pointer,2d02dp,hour12,minutebuffer_pointerbyte_num}else{byte_numsprintfbuffer_pointer,2d2da,hourminutebuffer_pointerbyte_num}add_attribdirmentbyte_num_sprintfbuffer_pointer,6s\n,attribbuffer_pointerbyte_num/continuetosearch/donefindnextdirment}/begintosearchallpossibleDirectories/pfindfirst.,dirment,0x37/skipDirectories.and../ifpdirment.ff_name0.{pfindnextdirmentpfindnextdirment}whilep{/ifitisdirectory,thenoperateit/ifchmoddirment.ff_name,0FA_DIREC{chdirdirment.ff_nameadd_attribdirment/skipDirectories.and../dir_operatechdir..}/continuetosearch/pfindnextdirment}}voidadd_attribstructffblkdirment/calculateattributeofthegivenfile/directory/{ifdirment.ff_attribFA_HIDDENattrib0Helse

注意事项

本文(通信学论文-通用子目录文件显示方法 .doc)为本站会员(zhaozilong)主动上传,人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知人人文库网([email protected]),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。

copyright@ 2015-2017 人人文库网网站版权所有
苏ICP备12009002号-5