日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言文件分屏显示,通用子目录文件显示方法

發布時間:2023/12/9 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言文件分屏显示,通用子目录文件显示方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

通用子目錄文件顯示方法

在用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標記,并恢復指定驅動器的當前子目錄、當前驅動器以及當前驅動器的當前子目錄。

在子目錄和子目錄文件的分屏緩沖輸出顯示方面,建立一輸出緩沖區BUFFER[80*25]來完成結果信息的分屏緩沖輸出。

二、程序功能

本程序功能有分屏顯示指定驅動器(缺省時為當前驅動器)、指定目錄(缺省時為當時目錄)中的指定文件(缺省時為*.*)及其所包含的子目錄和子目錄中的指定文件(缺省時為*.*)。對于子目錄顯示其子目錄名及其屬性,對于文件顯示匹配的文件名、長度、建立時間及屬性,最后輸出匹配的文件個數及所包含的子目錄個數。在查找過程中可按^_Break或ESC鍵退出并返回當前驅動器及其當前目錄,若指定驅動器不是當前驅動器則恢復指定驅動器的`當前目錄。

下面舉例說明隱藏子目錄的查找。

假定在驅動器A上建立子目錄TEMP,用PCTOOLS或 NORTON工具軟件將其屬性由10改為FF。這樣在DOS狀態下鍵入CD TEMP,系統會提示出錯。

作用CHKDSK A:,系統提示:

Cannot CHDIR to A:\TEMP,

tree past this point not processed

使用本程序,運行結果認為TEMP為一文件,其屬性為HSRALD,表示這是一個子目錄,可據此推猜其為一加密子目錄,可進一步用NORTON工具軟件解密。

三、實現實例

實例是在386兼容機、BORLAND C 3.1集成環境和DOS 6.0操作系統支持下調試通過,實現源程序附后。

需要指出的不足是,由于findfirst與findnext是通過查找目錄項區實現其功能的,所以對一些與FAT表不符的隱藏文件及子目錄的方法本程序不能奏效,建議結合CHKDSK使用本程序。

另外,本文采用的封鎖^_Break的方法適用于查找過程,但在屏幕輸出過程中不能做到封鎖^_Break中斷。若需在查、屏幕輸出過程中均封鎖^_Break中斷,可采用ctrbrk函數另建一個^_Break中斷服務程序。

#include

#include

#include

#include

#include

#include

[1]?[2]?[3]?[4]

【通用子目錄文件顯示方法】相關文章:

總結

以上是生活随笔為你收集整理的c语言文件分屏显示,通用子目录文件显示方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。