Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Determining valid drives
Message
 
 
To
08/12/2006 15:07:25
General information
Forum:
Visual FoxPro
Category:
Forms & Form designer
Environment versions
Visual FoxPro:
VFP 9 SP1
OS:
Windows XP SP2
Network:
Windows XP
Database:
Visual FoxPro
Miscellaneous
Thread ID:
01176193
Message ID:
01176262
Views:
8
Hi Greg,

It's simpler with VFP DRIVETYPE() functin Re: Determine Available Drives Message #841080

>This returns a string of drives letters and the type of drives they are.
>
>
>    PROCEDURE DriveListing
>        * Constants for drive types.
>        #DEFINE DRIVE_UNKNOWN 0
>        #DEFINE DRIVE_NO_ROOT_DIR 1
>        #DEFINE DRIVE_REMOVABLE 2
>        #DEFINE DRIVE_FIXED 3
>        #DEFINE DRIVE_REMOTE 4
>        #DEFINE DRIVE_CDROM 5
>        #DEFINE DRIVE_RAMDISK 6
>        *#DEFINE CR CHR(13)
>
>        DECLARE INTEGER GetLogicalDrives IN Win32API
>        DECLARE INTEGER GetDriveType IN Win32API STRING RootPath
>
>        PRIVATE lcDrivestring, lcDriveRoot, liDrivelist, lcDrives, i
>        lcDrives = ""
>
>        liDrivelist = GetLogicalDrives()
>
>        * Check each of the bits
>        FOR i = 0 TO 31
>            IF BITTEST(liDrivelist, i)
>                * If the 0th bit is ON, that means drive 'A:',
>                * the 2nd bit is 'C:", etc.
>                lcDriveRoot = CHR(65 + i) + ":\"
>                * Perform a GetDriveType to determine if it is a floppy, CD, etc.
>                lcDrivetype = GetDriveType(lcDriveRoot)
>                DO CASE
>                    CASE lcDrivetype = DRIVE_UNKNOWN
>                        lcDrivestring = "Cannot be determined"
>                    CASE lcDrivetype = DRIVE_NO_ROOT_DIR
>                        lcDrivestring = "Root directory does not exist"
>                    CASE lcDrivetype = DRIVE_REMOVABLE
>                        lcDrivestring = "Floppy/removable drive"
>                    CASE lcDrivetype = DRIVE_FIXED
>                        lcDrivestring = "Hard drive/nonremovable drive"
>                    CASE lcDrivetype = DRIVE_REMOTE
>                        lcDrivestring = "Remote/Network drive"
>                        lcunc=THIS.GetUNCForDriveLetter(LEFT(lcDriveRoot,2))
>                        IF TYPE('lcunc')="C" .AND. !EMPTY(lcunc)
>                            lcDrivestring = lcunc
>                        ENDIF
>                    CASE lcDrivetype = DRIVE_CDROM
>                        lcDrivestring = "CD-ROM drive"
>                    CASE lcDrivetype = DRIVE_RAMDISK
>                        lcDrivestring = "RAM disk"
>                ENDCASE
>                lcDrives = lcDrives + lcDriveRoot + " " + lcDrivestring + chr(13)+chr(10)
>            ENDIF
>        NEXT
>
>        *=MESSAGEBOX(lcDrives, 0 + 64 + 0,'All Drives Listing')
>        RETURN lcDrives
>        RETURN
>
>    ENDPROC
>
>
--sb--
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform