Viva Clipper !

ADir()

Advertisements

 

ADIR()

Fill pre-defined arrays with file/directory information

Syntax

      ADIR( [<cFileMask>], [<aName>], [<aSize>], [<aDate>],
            [<aTime>], [<aAttr>] ) --> nDirEnries

Arguments

<cFileMask> File mask to include in the function return. It could contain path and standard wildcard characters as supported by your OS (like * and ?). If you omit <cFileMask> or if <cFileMask> contains no path, then the path from SET DEFAULT is used.

<aName> Array to fill with file name of files that meet <cFileMask>. Each element is a Character string and include the file name and extension without the path. The name is the long file name as reported by the OS and not necessarily the 8.3 uppercase name.

<aSize> Array to fill with file size of files that meet <cFileMask>. Each element is a Numeric integer for the file size in Bytes. Directories are always zero in size.

<aDate> Array to fill with file last modification date of files that meet <cFileMask>. Each element is of type Date.

<aTime> Array to fill with file last modification time of files that meet <cFileMask>. Each element is a Character string in the format HH:mm:ss.

<aAttr> Array to fill with attribute of files that meet <cFileMask>. Each element is a Character string, see DIRECTORY() for information about attribute values. If you pass array to <aAttr>, the function is going to return files with normal, hidden, system and directory attributes. If <aAttr> is not specified or with type other than Array, only files with normal attribute would return.

Returns

ADIR() return the number of file entries that meet <cFileMask>

Description

ADIR() return the number of files and/or directories that match a specified skeleton, it also fill a series of given arrays with the name, size, date, time and attribute of those files. The passed arrays should pre-initialized to the proper size, see example below. In order to include hidden, system or directories <aAttr> must be specified.

ADIR() is a compatibility function, it is superseded by DIRECTORY() which returns all the information in a multidimensional array.

Examples

      LOCAL aName, aSize, aDate, aTime, aAttr, nLen, i
      nLen := ADir( "*.jpg" )     // Number of JPG files in this directory
      IF nLen > 0
         aName := Array( nLen )   // make room to store the information
         aSize := Array( nLen )
         aDate := Array( nLen )
         aTime := Array( nLen )
         aAttr := Array( nLen )
         ADir( "*.prg", aName, aSize, aDate, aTime, aAttr )
         FOR i := 1 TO nLen
             ? aName[ i ], aSize[ i ], aDate[ i ], aTime[ i ], aAttr[ i ]
         NEXT
      ELSE
         ? "This directory is clean from smut"
      ENDIF

Compliance

<aName> is going to be filled with long file name and not necessarily the 8.3 uppercase name.

Files

Library is rtl

Seealso

ARRAY(), DIRECTORY(), SET DEFAULT

Advertisements

Advertisements