Buenos días
76xademx76!
A ver así en el código del botón:
&& EN UN BOTTON EVENT CLICK
************************************************
LPARAMETERS tcCarpeta, tcEsquema, tcCursor, tcAtributos, tlMayusculas
LOCAL lcAlias, lnCualCase, lnCantidadArchivos, lnI, lnJ,nFlags, lcCurDir,;
lcFileName, lcFileList, lcPath
SET deleted on
lcCurDir = Curdir()
With Thisform
.olecommdlog.Filter = [All Files|*.*|JPG Files|*.jpg|BMP Files|*.bmp]
.olecommdlog.FilterIndex = 1
.olecommdlog.DialogTitle = [Seleccionar Archivos]
.olecommdlog.MaxFileSize = 32767
.olecommdlog.Flags = Bitor(0x4, 0x10, 0x200, 0x800, 0x1000, 0x8000, 0x40000, 0x80000)
.olecommdlog.InitDir = [C:\]
.olecommdlog.ShowOpen()
lcFileList = .olecommdlog.FileName
lcFileName = []
lcPath = []
Endwith
****************************************************************************************
CREATE CURSOR FILENAMES (ID int autoinc, CUR_NOMBRE C(50), CUR_TAMANO N( 10),;
FULL_NOMBRE C(60), CUR_FECHAX D, CUR_HORAXX C( 8), CUR_ATRIBU C( 5), ESTADO C(1))
****************************************************************************************
Do Case
Case Empty(lcFileList)
Use In Select([FILENAMES])
Case Occurs(Chr(0),lcFileList) = 0
lcFileName = JustStem(lcFileList) + "." + JustExt(lcFileList)
Insert Into FILENAMES (CUR_NOMBRE, FULL_NOMBRE, ESTADO) Values (lcFileName , lcFileList, '1')
Otherwise
For i = 0 To Occurs(Chr(0),lcFileList)
If i = 0
lcPath = Substr(lcFileList,1,At(Chr(0),lcFileList))
lcFileList = Substr(lcFileList,At(Chr(0),lcFileList) + 1)
Else
If Chr(0) $ lcFileList
lcFileName = Substr(lcFileList,1,At(Chr(0),lcFileList))
lcFileList = Substr(lcFileList,At(Chr(0),lcFileList) + 1)
Else
lcFileName = lcFileList
Endif
Insert Into FILENAMES ;
(CUR_NOMBRE, FULL_NOMBRE, ESTADO);
VALUES ;
(lcFileName,((Addbs(lcPath) + lcFileName)), '1')
Endif
ENDFOR
do while .t.
lcAlias = ALIAS()
tcCarpeta = Iif(Empty(tcCarpeta) , Sys(5) + Curdir(), tcCarpeta)
tcEsquema = Iif(Empty(tcEsquema) , "*.*" , tcEsquema)
tcCursor = Iif(Empty(tcCursor) , "CUR_ARCHIVOS" , tcCursor)
tcAtributos = Iif(Empty(tcAtributos) , "A" , Upper(tcAtributos))
tlMayusculas = Iif(Empty(tlMayusculas), .F. , tlMayusculas)
lnCualCase = Iif(tlMayusculas , 0 , 1)
IF Used(tcCursor) THEN
SELECT (tcCursor)
DELETE ALL IN CUR_ARCHIVOS
*ZAP
ELSE
CREATE CURSOR (tcCursor) ( ;
CUR_NOMBRE C(50), ; && Nombre del archivo/carpeta
CUR_TAMANO N( 10), ; && Tamaño en bytes
CUR_FECHAX D , ; && Fecha de creación o última modificación
CUR_HORAXX C( 8), ; && Hora de creación o última modificación
CUR_ATRIBU C( 5) ; && Atributos: A=Archivo común, D=carpeta, H=oculto, S=sistema, R=sólo lectura
)
ENDIF
lnCantidadArchivos = ADIR(laArchivos, AddBS(tcCarpeta) + tcEsquema, tcAtributos, lnCualCase)
FOR lnI = 1 TO lnCantidadArchivos
lnJ = (lnI - 1) * 5
INSERT INTO (tcCursor);
( CUR_NOMBRE , CUR_TAMANO , CUR_FECHAX , CUR_HORAXX , CUR_ATRIBU ) ;
VALUES (laArchivos[lnJ + 1], laArchivos[lnJ + 2], laArchivos[lnJ + 3], laArchivos[lnJ + 4], laArchivos[lnJ + 5])
ENDFOR
IF !Empty(lcAlias) THEN
SELECT (lcAlias)
ENDIF
Exit
Enddo
ENDCASE
****************************************************************************************
SELECT cur_archivos
SCAN
lcNombre=ALLTRIM(cur_archivos.cur_nombre)
lnSize=cur_archivos.cur_tamano
lcFecha=CUR_ARCHIVOS.cur_fechax
lcHora=CUR_ARCHIVOS.cur_horaxx
lcAtrib=CUR_ARCHIVOS.cur_atribu
UPDATE filenames from cur_archivos SET cur_tamano=lnSize,;
cur_fechax = lcFecha,;
cur_horaxx = lcHora,;
cur_atribu = lcAtrib ;
WHERE filenames.cur_nombre=lcNombre
ENDSCAN
SELECT FILENAMES
GO TOP
BROWSE
Set Defa To (lcCurDir)
Suerte
zarlu
Chetumal, Quintana Roo, México