Para seleccionar de un directorio los archivos jpg, hacemos:
- Code: Select all Expand view RUN
- Ficheros := Array( ADir( Publicas:cUnidad+"*.jpg" ) )
Pero si quiero seleccionar jpg y pdf , como lo hago?
Ficheros := Array( ADir( Publicas:cUnidad+"*.jpg" ) )
#include "FiveWin.ch"
function Main()
local ficheros := {}
// Con todos los datos del fichero
AEval(Directory(".\*.jpg"), {|x| Aadd(ficheros,x)})
AEval(Directory(".\*.pdf"), {|x| Aadd(ficheros,x)})
xbrowse(ficheros)
// Solo el nombre del fichero
AEval(Directory(".\*.jpg"), {|x| Aadd(ficheros,x[1])})
AEval(Directory(".\*.pdf"), {|x| Aadd(ficheros,x[1])})
xbrowse(ficheros)
return nil
aDir := HB_DirScanM( cPath, { "*.bmp", "*.jpg", "*.jpeg", "*.png", "*.gif", "*.tif", "*.tiff", "*.wmf", "*.emf" }, "", .T. )
FUNCTION hb_DirScanM( cPath, aFileMask, cAttr, lrecursiv )
RETURN hb_DoScanM( hb_DirSepAdd( hb_defaultValue( cPath, "" ) ), ;
IIF( HB_ISARRAY( aFileMask ), aFileMask, IIF( HB_ISSTRING( aFileMask ), { aFileMask }, { hb_osFileMask() } ) ), ;
hb_defaultValue( cAttr, "" ), ;
hb_ps(), lrecursiv )
STATIC FUNCTION hb_doScanM( cPath, aMask, cAttr, cPathSep, lrecursiv )
LOCAL aFile
LOCAL lMatch
LOCAL aResult := {}
DEFAULT lrecursiv := .T.
FOR EACH aFile IN hb_vfDirectory( cPath + hb_osFileMask(), cAttr + IF( lrecursiv, "D", "" ) )
lMatch := .F.
AEVAL( aMask, { | x | IIF( HB_ISSTRING( x ), lMatch := hb_FileMatch( aFile[ F_NAME ], x ) .OR. lMatch, Nil ) } )
IF "D" $ aFile[ F_ATTR ]
IF lMatch .AND. "D" $ cAttr
IF lrecursiv = .T.
AADD( aResult, aFile )
ENDIF
ENDIF
IF !( aFile[ F_NAME ] == "." .OR. aFile[ F_NAME ] == ".." .OR. aFile[ F_NAME ] == "" )
AEVAL( hb_DoScanM( cPath + aFile[ F_NAME ] + cPathSep, aMask, cAttr, cPathSep ), ;
{ | x | x[ F_NAME ] := aFile[ F_NAME ] + cPathSep + x[ F_NAME ], ;
AADD( aResult, x ) } )
ENDIF
ELSEIF lMatch
AADD( aResult, aFile )
ENDIF
NEXT
RETURN aResult
Return to FiveWin para Harbour/xHarbour
Users browsing this forum: Google [Bot] and 62 guests