Microsoft KB Archive/94339

= Using FoxPro to Check for Existence of a Directory =

Article ID: 94339

Article Last Modified on 12/1/2003

-

APPLIES TO


 * Microsoft Visual FoxPro 3.0 Standard Edition
 * Microsoft FoxPro 2.0
 * Microsoft FoxPro 2.5b for MS-DOS
 * Microsoft FoxPro 2.5a
 * Microsoft FoxPro 2.5b
 * Microsoft FoxPro 2.5a

-



This article was previously published under Q94339



SUMMARY
There are two ways to check for the existence of a directory on a drive:


 * The FILE function can be used to check for the existence of a file on a local drive. FILE only works on network drives under work groups.

NOTE: The method described below using the FILE function does not work when running FoxPro for Windows or FoxPro for MS-DOS under Windows 3.11. This method can only be used when running FoxPro for MS-DOS directly under MS-DOS versions greater than 3.0, or when running FoxPro for MS- DOS or FoxPro for Windows under Windows NT.

-or-
 * The ADIR and ASCAN functions can be used together to check for the existence of a file on either a local or network drive.



MORE INFORMATION
FILE attempts to locate a file or directory on disk and returns .T. or .F. based on the results of the search. Specify the filename to search for as a character string argument. To test for the existence of a directory, specify NUL as the filename. For example: ?FILE('c:\temp\NUL') The above command checks for the existence of the C:\FOXPRO2 directory. (NOTE: This usage of NUL is not supported by versions of MS-DOS prior to version 3.0.)

ADIR places file information in an array. The resulting array contains five columns, containing filenames, sizes, dates, times, and attributes, respectively. ADIR takes up to three arguments:


 *  indicates the array name.
 *  is optional and can be used to specify a template filename, such as &quot;C:\FOX*&quot; or &quot;*.DBF&quot;. Only filenames matching the template will be placed in the array.
 *  can contain the letters D, H, S, or V to limit the results to directory names, hidden files, system files, or the volume name, respectively.

The ASCAN function can then be used to determine if a matching directory entry was placed in the array. For example: ?ADIR(dirarray,'FOXPRO2','D') The above command creates the array named &quot;dirarray&quot; and creates one row for the directory FOXPRO2. ?ASCAN(dirarray,'FOXPRO2') The above command returns .T. or .F. if FOXPRO2 is contained in the array.

