Hallo Helmut,
OK, da habe ich Dich falsch verstanden!
Das kannst Du durch die nachfolgende Funktion ADIR() herausfinden.
In diesem Fall mußt Du fileAttr = "DHS" setzen (also mit D !)
LOCAL pathName
LOCAL fileName
LOCAL fileAttr
LOCAL findFileData
LOCAL handle
LOCAL foundFileName
LOCAL foundShortFileName
LOCAL foundFileSize
LOCAL foundFileDate
LOCAL foundFileTime
LOCAL foundFileAttr
LOCAL foundType
LOCAL arrayName[1]
LOCAL ret
DECLARE INTEGER FindFirstFile IN WIN32API;
STRING fileName,;
STRING @findFileData
DECLARE INTEGER FindNextFile IN WIN32API;
INTEGER handle,;
STRING @findFileData
DECLARE INTEGER FindClose IN WIN32API;
INTEGER handle
pathName = "d:\"
fileName = "*.txt"
fileAttr = "DHS"
findFileData = SPACE( 318 )
handle = FindFirstFile( pathName + fileName, @findFileData )
IF handle != -1 && ERSTE Datei gefunden !!!
foundFileName = ALLTRIM( SUBSTR( findFileData, 45, 260 ) )
foundShortFileName = ALLTRIM( SUBSTR( findFileData, 305, 14 ) )
ret = ADIR( arrayName, pathName + foundFileName, fileAttr )
foundFileSize = IIF( ret > 0, arrayName[1, 2], 0 )
foundFileDate = IIF( ret > 0, arrayName[1, 3], {..} )
foundFileTime = IIF( ret > 0, arrayName[1, 4], "" )
foundFileAttr = IIF( ret > 0, arrayName[1, 5], "" )
foundType = IIF( ATC( "D", foundFileAttr ) != 0, "Ordner", "Datei" )
MESSAGEBOX( foundType + ": " + foundFileName )
DO WHILE .T.
findFileData = SPACE( 318 )
ret = FindNextFile( handle, @findFileData )
IF ret = 0 && KEINE weitere Datei gefunden !!!
EXIT
ENDIF
foundFileName = ALLTRIM( SUBSTR( findFileData, 45, 260 ) )
foundShortFileName = ALLTRIM( SUBSTR( findFileData, 305, 14 ) )
ret = ADIR( arrayName, pathName + foundFileName, fileAttr )
foundFileSize = IIF( ret > 0, arrayName[1, 2], 0 )
foundFileDate = IIF( ret > 0, arrayName[1, 3], {..} )
foundFileTime = IIF( ret > 0, arrayName[1, 4], "" )
foundFileAttr = IIF( ret > 0, arrayName[1, 5], "" )
foundType = IIF( ATC( "D", foundFileAttr ) != 0, "Ordner", _
"Datei" )
MESSAGEBOX( foundType + ": " + foundFileName )
ENDDO
FindClose( handle )
ENDIF Wenn dann ATC( "D", foundFileAttr ) != 0 liefert, handelt es sich um einen Ordner, ansonsten um eine Datei !
Gruß, Stefan |