Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
FoxPro Dos Question
Message
De
18/09/1999 07:03:33
Cetin Basoz
Engineerica Inc.
Izmir, Turquie
 
 
À
15/09/1999 12:38:53
Information générale
Forum:
Visual FoxPro
Catégorie:
FoxPro 2.x
Divers
Thread ID:
00265057
Message ID:
00266276
Vues:
22
>does anyone know how to check to see if a directory already exisits in FoxPro Dos.
>thanks
>james


James,
If you're after creating new directories in DOS then this should help you :
** Run once to create binary files - then include in your project
function bincreator
handle = fcreate("CHKDRV.BIN")
=fwrite(handle,chr(30)+chr(7)+chr(180)+chr(0)+chr(139)+ ;
   chr(23)+chr(205)+chr(19)+chr(184)+chr(1)+chr(2)+ ;
   chr(185)+chr(1)+chr(0)+chr(205)+chr(19)+chr(61)+ ;
   chr(0)+chr(0)+chr(116)+chr(21)+chr(184)+chr(1)+ ;
   chr(2)+chr(185)+chr(1)+chr(0)+chr(205)+chr(19)+ ;
   chr(61)+chr(0)+chr(0)+chr(116)+chr(8)+chr(184)+ ;
   chr(1)+chr(2)+chr(185)+chr(1)+chr(0)+chr(205)+ ;
   chr(19)+chr(180)+chr(1)+chr(205)+chr(19)+chr(137)+ ;
   chr(7)+chr(203),49)
=fclose(handle)
handle = fcreate("LOCAL.BIN")
=fwrite(handle,chr(83)+chr(184)+chr(9)+chr(68)+chr(139)+ ;
   chr(31)+chr(205)+chr(33)+chr(129)+chr(226)+chr(0)+ ;
   chr(16)+chr(91)+chr(137)+chr(23)+chr(203),16)
=fclose(handle)
handle = fcreate("MKDR.BIN")
=fwrite(handle,chr(184)+chr(0)+chr(57)+chr(139)+chr(211)+ ;
   chr(205)+chr(33)+chr(203),8)
=fclose(handle)
handle = fcreate("VALIDDRV.BIN")
=fwrite(handle,chr(83)+chr(184)+chr(8)+chr(68)+chr(139)+ ;
   chr(31)+chr(205)+chr(33)+chr(91)+chr(114)+chr(3)+ ;
   chr(137)+chr(7)+chr(203)+chr(61)+chr(15)+chr(0)+ ;
   chr(116)+chr(5)+chr(199)+chr(7)+chr(2)+chr(0)+ ;
   chr(203)+chr(137)+chr(7)+chr(203),27)
=fclose(handle)
** Run once to create binary files

**************************************************************
* FUNCTION XMAKEDIR(C_path)
* CREATE A PATH IF !EXIST
* example :
* 	=XMAKEDIR("C:\TEMP\DBFS\D1\D2\D3\D4\D5")	&& C:\TEMP\DBFS EXISTS
* 	=XMAKEDIR("C:\D1\D2\D3\D4\D5")				&& NONE EXISTS
* 	
* CREATES MISSING DIRECTORIES IN PATH
* All directory branch specified created if not already exists
* Handy to create nlevel directory
**************************************************************
FUNCTION XMAKEDIR
PARAMETERS XDIRNAME
SET CONSOLE OFF
FOR XDIRCNT=1 TO OCCURS("\",XDIRNAME)-1
	=makedir(LEFT(XDIRNAME,AT("\",XDIRNAME,XDIRCNT+1)-1))
ENDFOR
=makedir(XDIRNAME)
SET CONSOLE ON

***************************************
* Call   : makedir("c:\temp")
*          makedir("c:\temp\t1")
*          makedir("c:\temp\t1\t2")
* Return : Nothing
***************************************
function makedir
PARAMETERS NEWDIR
mp = NEWDIR+chr(0)
load mkdr.bin
call mkdr.bin with mp

***************************************
* Call   : valdrv("a")
* Return : 0 Removable
*          1 Fixed    
*          2 Network
*         15 Invalid drive
***************************************
function valdrv
parameters drv
mp = chr(asc(upper(DRV))-ASC("A")+1)+space(3)
load validdrv.bin
call validdrv with mp
return asc(mp)

***************************************
* Call   : netdrv("a")
* Return : Logical True if network drive
***************************************
function netdrv
parameters drv
mp = chr(asc(upper(DRV))-ASC("A")+1)+space(3)
load local.bin
call local with mp
return ( asc(substr(mp,2,1)) = 16 )


*********************************************
* Call   : isdiskin("a")
* Return : Logical True if disket drive ready
*********************************************
function isdiskin
parameters drv
if valdrv(drv)=0
	mp = chr(0)+chr(asc(upper(DRV))-ASC("A"))+space(510)
	load chkdrv.bin
	call chkdrv with mp
	return ( asc(substr(mp,2,1)) = 0 )
else
	return ( valdrv(drv) < 3 )
endif
xmakedir() even works with hidden directories. But I never tried it with System, readonly, network, special win dirs etc.
Cetin
Çetin Basöz

The way to Go
Flutter - For mobile, web and desktop.
World's most advanced open source relational database.
.Net for foxheads - Blog (main)
FoxSharp - Blog (mirror)
Welcome to FoxyClasses

LinqPad - C#,VB,F#,SQL,eSQL ... scratchpad
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform