Programación General > Power Builder
OBTENER FECHA DE UN ARCHIVO
(1/1)
dcnseC:
OLA DE NUEVO POR AQUI, TENGO UNA NUEVA CONSULTA...
SIGO CON EL DESARROLLO DE MI PROGRAMITA DE CONTROL DE ARCHIVOS WORD, AHORA SE ME A PRESENTADO LO SIGUIENTE:
TENGO MAS DE 20 MIL ARCHIVOS WORD LISTADOS EN MI BASE DE DATOS QUE LOS MUESTRO MEDIANTE MI APLICACION ECHA EN POWER BUILDER 9.0 , AHORA EL PROBLEMA SE PRESENTA CUANDO QUIERO SABER CUALES FUERON MIS ARCHIVOS MODIFICADOS UN DIA EN ESPECIAL, E PENSADO CON UN CAMPO PARA FECHA Y CAPTURANDO LA FECHA DEL SISTEMA PERO NO CREO QUE ME FUNCIONE POR QUE HAY ARCHIVOS QUE INCLUSO NO LOS ABRO MEDIANTE EL PROGRAMA Y AHI ES CUANDO EL PROGRAMA PERDERIA EL CONTROL VERDADERO DEL ARCHIVO ASIES QUE DESEO SABER SI HAY ALGUNA FORMA DE OBTENER LA FECHA DE MODIFICACION DE UN ARCHIVO.
De antemano gracias por su respuesta.
dcnseC
goldenscriptup:
Aqui tienes un ejemplo que recopile de este sitio.
(w3).tek-tips.com/viewthread.cfm?qid=1390120&page=1
Creas una funcion.
--- Código: Text ---//FUNCTION: uf_file_last_mod( as_filename ) -- returns String //SCRIPT: String ls_path, ls_file, ls_testDateTime ldt_retOLEObject obj_shell, obj_folder, obj_item obj_shell = CREATE OLEObjectobj_shell.ConnectToNewObject( 'shell.application' ) ls_path = Left( as_filename, LastPos( as_filename, "" ) )ls_file = Mid( as_filename, LastPos( as_filename, "" ) + 1 ) IF FileExists( as_filename ) THEN obj_folder = obj_shell.NameSpace( ls_path ) IF IsValid( obj_folder ) THEN obj_item = obj_folder.ParseName( ls_file ) IF IsValid( obj_item ) THEN ls_test = obj_folder.GetDetailsOf( obj_item, 3 ) END IF END IFEND IF DESTROY obj_shellDESTROY obj_folderDESTROY obj_item RETURN ls_test
Si quieres que el return sea datetime es cuestion de que lo modifiques.
Y para que hagas una prueba rapida creas un boton en la ventana y escribes esto pero primero debes de crear el ARCHIVO "c:texto.txt"
--- Código: Text ---String ls_file ls_file = "c:texto.txt" MessageBox("Fecha",uf_file_last_mod(ls_file))
En la funcion tiene esta sintaxis "ls_test = obj_folder.GetDetailsOf( obj_item, 3 )" y el numero 3 le corresponde a un tipo de propiedad del archivo, el 3 es la fecha de modificacion del archivo y el 4 es la fecha de la creacion del archivo. En la parte de abajo te pongo la lista disponible.
Cualquier duda no dudes en postearla, espero que te sea de utilidad.
Saludos!
0 = "Filename"
1 = "Size"
2 = "Type"
3 = "Modified date"
4 = "Created date"
5 = "Unknown"
6 = "Attributes"
7 = "???"
8 = "Domene"
9 = "Artist"
10= "Tittle"
11= ""
12= "Genre"
13= ""
14= "Comments"
15= ""
16= "Artist"
17= "Album title"
18= "Year"
19= ""
20= "Genre"
21= "Duration"
22= "Bitrate"
23= "Protected"
24= ""
25= ""
26= ""
27= ""
28= ""
29= ""
30= ""
31= ""
32= "???"
33= "Audio sample rate"
34= "Channels"
dcnseC:
HOLA, VOY A TENER QUE PROBAR EL EJEMPLO QUE ME ESTAS DANDO Y SEGUN ESO RESPONSO A LO QUE ME AS ESCRITO... PERO SEGURO QUE ME SERVIRA DE MUCHO....
MUCHAS GRACIAS.
Att. dcnseC Soft
DaVindie:
Gracias, funciona de maravilla.. nada más hay que colocar el backslash dentro de las comillas en estas dos líneas:
--- Código: PowerBuilder ---ls_path = Left( as_filename, LastPos( as_filename, "\" ) )ls_file = Mid( as_filename, LastPos( as_filename, "\" ) + 1 )
juliobn1:
Saludos, el codigo me funciona bien pero solo en SO con 32 bit, como puedo hacerlo funcionar en 64 bits, gracias de antemano.
Navegación
Ir a la versión completa