/* sample code to show how to get the filesystem (FAT, HPFS, CDFS */ /* or LAN) of a drive */ /* Tested with OS/2 v2.99 WARP BETA 2 (English) and OS/2 Version 3 */ /* WARP (German & English) */ /* */ /* Note that there's a function called QLDrives in the DLL RXLANUTIL */ /* which detects the data about all drives (including the */ /* filesystem). The new REXXUTIL introduced with Object-Oriented REXX */ /* also contains a function to get the filesystem of a drive. */ /* drives to check */ possibleDrives = "CDEFGHI" do i = 1 to length( possibleDrives ) curdrive = substr( possibleDrives,i,1 ) say "The filesystem of drive " || curDrive || ": is " || , GetFileSystem( curDrive ) end /* do i = 1 to ... */ exit 0 /* ------------------------------------------------------------------ */ /* function: Get the filesystem of a drive */ /* */ /* call: GetFileSystem( testDrive ) */ /* */ /* where: testdrive - Name of the drive to test (e.g. "A:") */ /* */ /* returns: the type of the filesystem or "UNKNOWN" */ /* */ GetFileSystem: PROCEDURE expose (exposeList) parse arg testDrive ":" . curFileSystem = "UNKNOWN" /* use an unknown parameter for */ /* CHKDSK to suppress all actions */ /* (except the print of the */ /* filesystem) */ /* flush the REXX queue v3.20 */ do while queued() <> 0; parse pull; end; "@chkdsk " testDrive || ": /dfdad 2>nul | rxqueue 2>NUL 1>&2" do while queued() <> 0 curLine = lineIN( "QUEUE:" ) if abbrev( curLine, "Dateisystemtyp für den Datenträger ist:" ) | , abbrev( curLine, "The type of file system for the disk is" ) then do curFileSystem = word( curLine, words( curLine ) ) if right( curFileSystem,1 ) == "." then curFileSystem = dbrright( curFileSystem,1 ) end /* if abbrev( ... */ end /* do while queued() <> 0 */ RETURN curFileSystem