Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!burl!ulysses!mhuxl!houxm!houxz!vax135!cornell!uw-beaver!tektronix!hplabs!sdcrdcf!sdcsvax!akgua!mcnc!ecsvax!bet From: bet@ecsvax.UUCP Newsgroups: net.sources Subject: Hard disk space reporter for PC-DOS on IBM-PC Message-ID: <2835@ecsvax.UUCP> Date: Tue, 3-Jul-84 15:00:52 EDT Article-I.D.: ecsvax.2835 Posted: Tue Jul 3 15:00:52 1984 Date-Received: Sat, 7-Jul-84 01:31:03 EDT Lines: 187 : This is a shar archieve. Extract with sh, not csh. : The rest of this file will extract: : README dirio.c disktype.h diskuse.bat makefile.dat report.c echo extracting - README sed 's/^X//' > README << '~FUNKY STUFF~' XThis program prints a report of disk space used on a tree-structured hard Xdisk. All spaces are totals. If it isn't exactly accurate, please feel Xfree to figure out why. If you do, I'd like to know. It *is* close. X X Bennett Todd X ...{decvax,ihnp4,akgua}!mcnc!ecsvax!bet echo extracting - dirio.c sed 's/^X//' > dirio.c << '~FUNKY STUFF~' X/* X * interface routines for directory manipulation X */ X X#include X#include X X/* sets disk transfer area to in current dseg */ Xset_dta(addr) XDTA *addr; X{ X#asm X mov dx,[bp+4] X mov ah,1ah X int 21h X# X} X X/* finds first name matching , returns TRUE iff successful */ Xfind_first(name) Xchar *name; X{ X#asm X mov dx,[bp+4] ; file name pattern X mov cx,16h ; attribute byte for hidden+system+directory X mov ah,4eh X int 21h X jc find_first_error X# X return(TRUE); X X#asm Xfind_first_error: X# X return(FALSE); X} X X/* finds next; returns FALSE when there are no more */ Xfind_next() X{ X#asm X mov ah,4fh X int 21h X jc find_next_error X# X return(TRUE); X X#asm Xfind_next_error: X# X return(FALSE); X} echo extracting - disktype.h sed 's/^X//' > disktype.h << '~FUNKY STUFF~' X/* X * type and constant defines for use of dirio routines X */ X Xtypedef struct { X char reserved[21], X attrib; X int time, X date; X long size; X char name[13]; X char padding[85]; X} DTA; X X#define ATR_RO 1 X#define ATR_HID 2 X#define ATR_SYS 4 X#define ATR_VOL 8 X#define ATR_DIR 16 X#define ATR_AR 32 echo extracting - diskuse.bat sed 's/^X//' > diskuse.bat << '~FUNKY STUFF~' Xpause prepare printer Xreport | sort /+9 > prn: echo extracting - makefile.dat sed 's/^X//' > makefile.dat << '~FUNKY STUFF~' Xreport.exe report.o dirio.o X bind.exe report dirio Xreport.o report.c stdio.h disktype.h X c88.exe report Xdirio.o dirio.c stdio.h disktype.h X c88.exe dirio Xclean X command.com /c=erase report.o X command.com /c=erase dirio.o echo extracting - report.c sed 's/^X//' > report.c << '~FUNKY STUFF~' X/* X * report [path] ... X * report gives actual disk space used by each directory, X * including space taken by all files in that directory X * X * Bennett Todd X * Duke Computation Center X * Durham, NC 27706 X * (919) 684-3183 X * ...{decvax,ihnp4,akgua}!mcnc!ecsvax!bet X */ X X#include X#include X Xmain(argc, argv) Xint argc; Xchar **argv; X{ X long space(); X X int i; X X /* X * space(""); will recursively do the entire job for that X * directory. Do it for every argument; default to the current directory. X */ X X if(argc==1) X space("."); X else X for(i=1; i