** 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 ) endifxmakedir() even works with hidden directories. But I never tried it with System, readonly, network, special win dirs etc.