home *** CD-ROM | disk | FTP | other *** search
- *******************
-
- FUNCTION Drnames
-
- PARAMETERS _array, _drive, _doabort
-
- IF PCOUNT() < 2
- RETURN(.F.)
- ELSEIF TYPE("_array") != "A"
- RETURN(.F.)
- ELSEIF LEN(_drive) != 2
- RETURN(.F.)
- ENDIF
-
- FOR _x = 1 TO LEN(_array)
- _array[_x] = ""
- NEXT
-
- * the _doabort variable is for the WHEREIS() function
-
- IF PCOUNT() = 2
- _doabort = .F.
- IF TYPE("_doabort") != "L"
- RETURN(.F.)
- ENDIF
- ENDIF
-
- PRIVATE _root, _dstring
-
- * _root = the root string format to search by
- * _dstring = the string for the drives
-
- _root = "\*."
- _dstring = "+\"
- _count = 1
- _scount = 1
-
- DO WHILE .T.
-
- IF _doabort
- IF INKEY() = 27
- RETURN(.F.)
- ENDIF
- ENDIF
- _search = PARSING(@_dstring)
-
- IF _scount = 1
- _array[_scount] = "\"
- ELSE
- _array[_scount] = _search
- ENDIF
- _scount = _scount + 1
-
- IF EMPTY(_dstring)
- EXIT
- ENDIF
-
- _path = _drive + _search + _root
- DECLARE _temp[1]
- _temp[1] = ""
- _howmany = ADIR(_path, .F., .F., .F., .F., _temp)
- IF !EMPTY(_howmany)
- DECLARE _temp[_howmany], _names[_howmany]
- ADIR(_path, _names, .F., .F., .F., _temp)
- FOR x = 1 TO LEN(_temp)
- IF _doabort
- IF INKEY() = 27
- RETURN(.F.)
- ENDIF
- ENDIF
- IF _temp[x] = "D"
- IF _names[x] = "." .OR. _names[x] = ".."
- ELSE
- _dstring = _dstring + _search + "\" + _names[x] + "+"
- _count = _count + 1
- IF _count > LEN(_array)
- RETURN(.F.)
- ENDIF
- ENDIF
- ENDIF
- NEXT
- ENDIF
- IF "\\"$_dstring
- _dstring = STRTRAN(_dstring, "\\", "\")
- ENDIF
- ENDDO
-
- RETURN(.T.)
-
- * End of File