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

通用子目录文件显示方法

在用CHKDS/V对磁盘子目录及子目录文件进行查找时,由于输出显示信息没有分屏显示,很容易错过需要的信息,并且显示信息没有标记出隐藏的子目录名及子目录文件名,这样就对进一步的子目录及文件操作带来许多不便。若辅以管道操作采用CHKDSK/V:|MORE,虽然可分屏显示,但等待输出时间过长,而且这时^_Break中断被封锁,效果不尽人意。本文针对于此采用截获^_Break和分屏缓冲输出技术实现子目录和子目录文件及其属性的显示。

56cc1925f4be1b3639d0f2713aa04867.png

一、实现原理

子目录和子目录文件的查找是通过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]

【通用子目录文件显示方法】相关文章:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/396769.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

hibernate--

正向工程: 通过创建Java代码生成表文件 反向工程: 把表创建完自动生成代码 转载于:https://www.cnblogs.com/Catherinezhilin/p/9687126.html

Javascript、Dom、JQuery

1、Javascript JavaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。 1.1 存在形式 1 1、文件形式 2 <script src"../jqu…

mysql镜像_Mysql phpmyadmin docker镜像安装

前言1.介于mysql的安装很容易出现各种坑&#xff0c;本文使用 mysql 的docker镜像2.为了方便管理mysql数据库又不暴露mysql服务&#xff0c;所以使用phpmyadmin管理pull镜像#下载mysql镜像docker pull mysql#下载phpmyadmin镜像docker pull phpmyadmin/phpmyadmin创建网络docke…

linux安装lrzsz,并使用rz sz 命令

1 centeos中使用 yum -y install lrzsz 命令下载并安装 2 使用 rz 命令将windows文件上传到linux 3 使用 sz 命令将linux文件下载到windows 例如&#xff1a; 4 tar zcvf dbq.tar.gz files/ 打包指定文件夹 5 sz dbq.tar.gz 转载于:https://www.cnblogs.com/shaner/p/6387516.h…

c语言智能小车项目的感想,智能小车毕业论文(完整版)要点分析.doc

学 士 学 位 论 文系 别&#xff1a; 计算机科学与技术学科专业&#xff1a; 计算机科学与技术姓 名&#xff1a; 2011年 0月智能小车引导控制系统的设计与实现系 别&#xff1a; 计算机科学与技术学科专业&#xff1a;姓 名&#xff1a;2011年 0月智能小车引导控制系统的设计与…

慈不掌兵,义不行贾,烂好人难成大业!

两个月前&#xff0c;朋友的创业公司倒闭了。 朋友是温文尔雅的白面君子&#xff0c;有着光鲜的履历和出众的能力。和他聊天&#xff0c;永远觉得沐浴春风。温润如玉&#xff0c;充满魅力。 朋友细致而体贴。他记得你的生日时&#xff0c;并在那天给发送祝福和红包&#xff1b;…

maven项目构建

Maven是apache的一个开源项目。是一个用来把源代码构建成可发布的构件的工具。 Maven的功能非常强大&#xff0c;可以认为是一个项目管理工具&#xff0c;不仅仅是一个构建工具。 Maven本身的核心很小&#xff0c;但是可以在上面扩展出很多的插件。Mven采用的是插件的思想&…

c++如何打开hdf5文件_如何打开CSV格式文件才能正常使用?

正文开始前先给大家来一波福利&#xff0c;欢迎大家扫码关注后&#xff0c;手动发送“薪酬”领取《企业薪酬管理必备资料包》&#xff01;注意&#xff1a;先扫码关注再回复回复关键词&#xff01;先扫码关注再回复回复关键词&#xff01;先扫码关注再回复回复关键词&#xff0…

Linux驱动技术(四) _异步通知技术

异步通知的全称是"信号驱动的异步IO"&#xff0c;通过"信号"的方式&#xff0c;放期望获取的资源可用时&#xff0c;驱动会主动通知指定的应用程序&#xff0c;和应用层的"信号"相对应&#xff0c;这里使用的是信号"SIGIO"。操作步骤是…

陕理工高级语言程序设计实验 (C)答案,陕理工高级语言程序计实验 (C)模板.doc

陕理工高级语言程序计实验 (C)模板《高级语言程序设计(C)》实验报告目录实验一&#xff1a;C开发环境与顺序结构程序设计21&#xff0e;实验目的&#xff1a;22&#xff0e;实验环境&#xff1a;23&#xff0e;实验步骤&#xff1a;24&#xff0e;实验内容&#xff1a;25&#…

java集合(1)-概述

Java集合类是一种特别有用的工具类,可用于存储数量不等的对象,并可以实现常用的数据结构,如栈,队列等,此外Java集合还可以用于保存具有映射关系的关联数组.java集合大致可分为Set,List,Queue和Map四种体系,其中Set代表无序,不可重复的集合;List代表有序,重复的集合;而Map则代表…

UVA1262Password(第K字典序)

题目链接 紫书P323 题意&#xff1a;两个6*5的字母矩阵&#xff0c;两个矩阵每列相同的字母&#xff0c;每列取一个&#xff0c;求按照字典序第k小的序列 分析&#xff1a; 对于第一个样例来说&#xff0c;我们得到{ACDW}、{BOP}、{GMOX}、{AP}、{GSU} 则一共有43423288种密码&…

自定义 View 循环滚动刻度控件

LoopScaleView 先看效果图: enter description hereLoopScaleView 是一个自定义的刻度尺风格的选值控件,从上面的动图大家可以看到 LoopScaleView 的运行效果.可以设置屏幕内显示的刻度数,也可以设置每一个刻度代表的值得大小。 LoopScaleView.class Nested class OnValueChang…

go 类型断言_(57)接口的类型断言

GO提供了一个方法&#xff0c;用来判断接口的底层值是什么类型类型断言 提供了访问接口值底层具体值的方式。t : i.(T)该语句断言接口值 i 保存了具体类型 T&#xff0c;并将其底层类型为 T 的值赋予变量 t。若 i 并未保存 T 类型的值&#xff0c;该语句就会触发一个panic。为了…

使用web3j构建以太坊钱包

创建一个以太坊钱包有多种方式&#xff0c;一般情况下可以通过geth、EtherumWallet等客户端。对于前端&#xff0c;可以使用插件MetaMask进行创建。这几种方式技术实现虽然不同&#xff0c;但底层原理是一致的。本文主要介绍如何通过web3j架构创建一个以太坊的冷钱包&#xff0…

Html、CSS、JavaScript 实时效果在线编辑器 - 学习的好工具,算不算?!

关于 二维码 与 NFC 之间的出身贫贱说太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es)本文遵循“署名-非商业用途-保持一致”创作公用协议转载请保留此句&#xff1a;太阳火神的漂亮人生 - 本博客专注于 敏捷开发及移动和物联设备研究&#xff1a;iOS、Android、Html5、…

android自定义更新,Android 完美解决自定义preference与ActivityGroup UI更新的问题

之前发过一篇有关于自定义preference 在ActivityGroup 的包容下出现UI不能更新的问题&#xff0c;当时还以为是Android 的一个BUG 现在想想真可笑 。其实是自己对机制的理解不够深刻&#xff0c;看来以后要多看看源码才行。本篇讲述内容大致为如何自定义preference 开始到与Act…

vxlan 资料及其在 neutron中的应用

2019独角兽企业重金招聘Python工程师标准>>> VXLAN 是一个新兴的SDN 标准&#xff0c;它定义了一种新的 overlay 网络&#xff0c;它主要的创造者是 VMware, Cisco 和 Arista。它被设计来消除虚拟化网络世界中的 VLAN 数目的限制。VXLAN 本身是一个多播标准&#xf…

横流式冷却塔计算风量_研讨丨卓展标准高效制冷机房技术之影响冷却塔效率的几个因素...

集中制冷用空调系统中&#xff0c;单台冷却塔的冷却水量基本上都小于1,000m/h&#xff0c;且装有淋水填料的横流机械通风开式居多。本文将已横流开式冷却塔为对象&#xff0c;探讨影响其效率的几个因素。横流开式冷却塔示意图如下所示&#xff1a;横流开式冷却塔示意图 Fig 01说…

我是培训出来的我怕谁

引子: 江小峰是我带过的徒弟中跟我最久&#xff0c;也是最聪明的一个。 他一个高中生&#xff0c;没上过大学&#xff0c;高中毕业后在老家卖了三年电脑&#xff0c;天天给人装操作系统&#xff0c;有天他在网上看到某培训机构招生简介&#xff0c;一时冲动揣上三年血汗钱&…