Greg,
a small Copy and Paste problem,
THIS.GetUNCForDriveLetter(LEFT(lcDriveRoot,2))
wouldn't works in the procedure which is not a part of the class :-)
>>Hi all,
>>
>>I want to set something up on a form that will allow the user to select from a list of valid drives on the system (C:, F:, etc.). I'd like to do this with a listbox or a spinner.
>>
>>How can I determine what the valid drives would be? Once that's determined, how do I get a list of the valid folders on that drive?
>>
>>Thanks!
>>
>>John
>
>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
>
>
Against Stupidity the Gods themselves Contend in Vain - Johann Christoph Friedrich von Schiller
The only thing normal about database guys is their tables.