通用子目錄文件顯示方法_第1頁
通用子目錄文件顯示方法_第2頁
通用子目錄文件顯示方法_第3頁
通用子目錄文件顯示方法_第4頁
通用子目錄文件顯示方法_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、通用子目次文件表現(xiàn)要領(lǐng)在用hkds/v對(duì)磁盤子目次及子目次文件舉行查尋時(shí),由于輸出表現(xiàn)信息沒有分屏表現(xiàn),很輕易錯(cuò)過必要的信息,而且表現(xiàn)信息沒有標(biāo)識(shí)表記標(biāo)幟出隱蔽的子目次名及子目次文件名,如許就對(duì)進(jìn)一步的子目次及文件操縱帶來很多未便。假設(shè)輔以管道操縱接納hkdsk/v:|re,固然可分屏表現(xiàn),但等候輸出時(shí)間過長(zhǎng),而且這時(shí)_break停頓被封閉,結(jié)果不盡人意。本文針對(duì)付此接納截獲_break和分屏緩沖輸出技能實(shí)現(xiàn)子目次和子目次文件及其屬性的表現(xiàn)。一、實(shí)現(xiàn)原理子目次和子目次文件的查尋是通過語言函數(shù)findfirst和findnext接納遞歸算法實(shí)現(xiàn)的。子目次和子目次文件的屬性是按照屬性字來斷定。屬性

2、字格式如以下圖所示:|7|6|5|4|3|2|1|0|第0位(只讀位):取1表現(xiàn)只讀第1位(隱含位):取1表現(xiàn)隱含第2位(體系位):取1表現(xiàn)體系第3位(卷標(biāo)位):取1表現(xiàn)卷標(biāo)第4位(子目次位):取1表現(xiàn)子目次第5位(歸檔位):取1表現(xiàn)歸檔第6、7位:保存未用在子目次及子目次文件查尋的遞歸調(diào)用前,保存_break標(biāo)識(shí)表記標(biāo)幟并封閉_break停頓,在正??⑹禄蚪孬@_break停頓(或es信號(hào))后規(guī)復(fù)_break標(biāo)識(shí)表記標(biāo)幟,并規(guī)復(fù)指定驅(qū)動(dòng)器的當(dāng)前子目次、當(dāng)前驅(qū)動(dòng)器以及當(dāng)前驅(qū)動(dòng)器的當(dāng)前子目次。在子目次和子目次文件的分屏緩沖輸出表現(xiàn)方面,創(chuàng)立一輸出緩沖區(qū)buffer80*25來完成結(jié)果信息的分屏緩沖

3、輸出。二、步伐成效本步伐成效有分屏表現(xiàn)指定驅(qū)動(dòng)器(缺省時(shí)為當(dāng)前驅(qū)動(dòng)器)、指定目次(缺省時(shí)為其時(shí)目次)中的指定文件(缺省時(shí)為*.*)及其所包羅的子目次和子目次中的指定文件(缺省時(shí)為*.*)。對(duì)付子目次表現(xiàn)其子目次名及其屬性,對(duì)付文件表現(xiàn)匹配的文件名、長(zhǎng)度、創(chuàng)立時(shí)間及屬性,末了輸出匹配的文件個(gè)數(shù)及所包羅的子目次個(gè)數(shù)。在查尋歷程中可按_break或es鍵退出并返回當(dāng)前驅(qū)動(dòng)器及其當(dāng)前目次,假設(shè)指定驅(qū)動(dòng)器不是當(dāng)前驅(qū)動(dòng)器那么規(guī)復(fù)指定驅(qū)動(dòng)器的當(dāng)前目次。下面舉例說明隱蔽子目次的查尋。假定在驅(qū)動(dòng)器a上創(chuàng)立子目次tep,用ptls或nrtn東西軟件將其屬性由10改為ff。如許在ds狀態(tài)下鍵入dtep,體系會(huì)提示墮

4、落。作用hkdska:,體系提示:annthdirta:tep,treepastthispintntpressed利用本步伐,運(yùn)行結(jié)果以為tep為一文件,其屬性為hsrald,表現(xiàn)這是一個(gè)子目次,可據(jù)此推猜其為一加密子目次,可進(jìn)一步用nrtn東西軟件解密。三、實(shí)實(shí)際例必要指出的不敷是,由于findfirst與findnext是通過查尋目次項(xiàng)區(qū)實(shí)現(xiàn)其成效的,以是對(duì)一些與fat表不符的隱蔽文件及子目次的要領(lǐng)本步伐不克不及見效,發(fā)起結(jié)合hkdsk利用本步伐。別的,本文接納的封閉_break的要領(lǐng)實(shí)用于查尋歷程,但在屏幕輸出歷程中不克不及做到封閉_break停頓。假設(shè)需在查、屏幕輸出歷程中均封閉_br

5、eak停頓,可接納trbrk函數(shù)另建一個(gè)_break停頓辦事步伐。#inludestdi.h#inludestdi.h#inludeds.h#inludedir.h#inludetype.h#inludestring.h#inludei.h#definees27#definetrl_break3#definepage_nuber22viddirperate(vid);vidadd_attrib(strutffblk);vidfull_sreen_perate(vid);hardriveraxdrive=,diraxdir=;harfileaxfile=,extaxext=harurdriver

6、,urdiraxdir;harlddriver,lddiraxdir,rkdiraxdir;harfn13=*.*;intpage_su=0,dir_su=0,file_su=0;harbuffer80*25;har*buffer_pinter=buffer;hartrl_bresk_flag;harattrib7=;ain(intarg,har*argv)urdriver=getdisk();getd(urdir,axdir);driver0=urdriver+a;if(arg2)printf(tuhparaeters!n);exit(0)if(arg=2)fnsplit(argv)1,dr

7、iver,dir,file,ext);if(strpy(file)!=0)strpy(file,exr,13);strpy(fnfile);if(strlen(driver)!=0)setdisk(tupper(driver0)-a)setdisk(tupper(drive0)-a)getd(lddir,axdir);strpy(rkdir,dirver);if(strlen(dir)!=0)if(strlen(dir)=1)strat(rkdir,dir,strlen(dir);elsestrnat(rkdir,dir,strlen(dir)-1);hdir(rkdir);trl_break

8、_flag=getbrk();setbrk(0);dir_perate()pust(buffer);setbrrk(trl_break_flag);if(dir_su-1=0)printf(nsub_diretries.n)elseprintf(%ddiretries.n,dir_su-1)if(file_su=0)printf(nfiles.n)elseprintf(%dfiles.n,file_su);if(strlen(driver)!=0)hdir(lddir);setdisk(urdriver);hdir(urdir);return(0);viddir_perate(vid)stru

9、tffblkdirent;intdne,p,byte_nu;unsignedintyear,nth,date,hurinute;harpathaxdir;/*begintsearhallpssiblefiles*/dne=findfirst(fn,dirent,0 x2f);getd(path,axpath);dir_su+;page_su+;if(page_su=page_nuber)full_sreen_perate();/*ritediretrynaeanditsattributeintbuffer*/byte_nu=sprintf(buffer_pinter,diretry%s,pat

10、h);buffer_piner+=byte_un;byte_un=sprintf(buffer_pinter,%6sn,attrib);buffer_pinter+=byte_nu;hile(!dne)page_su+;file_su+;if(page_su=page_nuber)full_sreen_perate();/*ritefilenaeanditslength,tie,attributeintbuffer*/bytp_nu=sprintf(buffer_pinter,%20s%8ld,dr,et.ff_nae,dirent.ff_fsize);buffer_pinter+=byte_

11、nu;year=(dirent.ff_fdate90 x7f)+80;nth=dirent.ff_fdate50 xf;date=dirent.ff_fdate0 x1f;hur=dirent.ff_ftie110 x1f;inute=dirent.ff_ftie50 x3f;byte_nu=sprintf(bufferr_pinter,%2d-%02d-%2d,nth,date,year);buffer_pinter+=byte_nu;if(hur=12)byte_nu=sprintf(buffer_pinter,%2d:%02dp,hur-12,inute);buffer_pinter+=

12、byte_nu;elsebyte_nu=sprintf(buffer_pinter,%2d:%2da,hurinute);buffer_pinter+=byte_nu;add_attrib(dirent);byte_nu_sprintf(buffer_pinter,%6sn,attrib);buffer_pinter+=byte_nu;/*ntinuetsearh*/dne-findnext(dirent);/*begintsearhallpssiblediretries*/p=findfirst(*.*,dirent,0 x37);/*skipdiretries.and.*/if(!pdir

13、ent.ff_nae0=.)p=findnext(dirent);p=findnext(dirent);hile(!p)/*ifitisdiretry,thenperateit*/if(-hd(dirent.ff_nae,0)fa_dire)hdir(dirent.ff_nae);add_attrib(dirent);/*skipdiretries.and.*/dir_perate();hdir(.);/*ntinuetsearh*/p=findnext(dirent);vidadd_attrib(strutffblkdirent)/*alulateattributefthegivenfile

14、/diretry*/if(dirent.ff_attribfa_hidden)attrib0=h;elseattrib0.;if(dirent.ff_attribfa_syste)attrib1=s;elseattrib1=.if(dirent.ff_attribfa_rdnly)attrib2=r;elseattrib2=.;if(dirent.ff_attribfa_arh)attrib3=a;elseattrib3=.;if(dirent.ff_attribfa_label)attrib4=l;elseattrib4=.;if(dirent.ff_attribfa_dire)attrib5=d;elseattrib5=.;vidfull_sreen_perate(vid)harkey_value;/*utputfull_sreen_buffer*/rputs(buffer);printf(strike_tterinateranytherkeytntinue!n);asvah,7int21hvkey_value

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論