FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Cambios en lIsDir
Posts: 989
Joined: Thu Nov 24, 2005 03:01 PM
Cambios en lIsDir
Posted: Thu Jul 19, 2007 11:21 AM
Hola Antonio
En las novedades leo
Correcci贸n: Recientes cambios en la funci贸n lIsDir() no estaban funcionando correctamente. Ahora funcionan correctamente.


Cual era el comportamiento an贸malo? Porque antes me funcionaba bien y ahora me fallan todos los lIsDir en la aplicaci贸n!

Saludos,

Carlos.
Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
鈥淚f you think education is expensive, try ignorance"
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Cambios en lIsDir
Posted: Thu Jul 19, 2007 11:44 AM

Carlos,

Estas usando FWH 7.07 ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 989
Joined: Thu Nov 24, 2005 03:01 PM
Cambios en lIsDir
Posted: Mon Jul 23, 2007 11:07 AM

Si Antonio, 7.07 con xHarbour 7.07.
El cambio de comportamiento respecto de 7.04 parece ser que no acepta nombre de directorio terminados en '\', Por ejemplo:

? lIsDir( "C:\Windows" ) => .T.
? lIsDir( "C:\Windows\" ) => .T. en 7.04, .F. en 7.07

Saludos,

Carlos.

Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
鈥淚f you think education is expensive, try ignorance"
Posts: 336
Joined: Wed May 16, 2007 09:40 PM
Cambios en lIsDir
Posted: Sat Jul 05, 2008 12:57 AM

Yo tenia instalado el 7.01 y el lIdir funcionaba , ahora instale el 8.05 y no funciona.

lIsdir("A:")

a que se debe

Fivewin-Xharbour 24.09, Iquique, Chile
Posts: 336
Joined: Wed May 16, 2007 09:40 PM
Cambios en lIsDir
Posted: Mon Jul 07, 2008 02:30 PM

Alguien ha podido solucionar este problema o existe otra funcion que realice esta verificacion de directorios.

El problema radica en que no tiene considerado la letra de la unidad, en mi caso es por eso que no reconoce ningun directorio ejemplo.

lisdir ("a:\windows") .f. el directorio si existe en la unidad a:

lisdir ("\windows") .t. el directorio existe pero en la unidad c:

Ahora si el diskette no se encuentra en la unidad te devuelve una pantalla de error de windows, tampoco se puede controlar ese mensaje de error.

para solucionar este problema debes cambiarte de unidad, verificar que exista el directorio y volver a la unidad actual donde estabas trabajando

En el anterior FW 7.01 funcionaba sin problema pero ahora con las nuevas versiones se volvio un problema.

fwh 8.05 xharbour

Fivewin-Xharbour 24.09, Iquique, Chile
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Cambios en lIsDir
Posted: Mon Jul 07, 2008 10:56 PM
El c贸digo fuente de la funci贸n lIsDir() esta ahora totalmente basado en Harbour/xHarbour:
function lIsDir( cDirName )   // Checks an existing directory

   local aResult

   if Right( cDirName, 1 ) == "\" .or. Right( cDirName, 1 ) == "/"
      cDirName = Left( cDirName, Len( cDirName ) - 1 )
   endif
   
   aResult = Directory( cDirName, "DHS" )
   
return Len( aResult ) == 1 .and. "D" $ aResult[ 1 ][ 5 ]
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 336
Joined: Wed May 16, 2007 09:40 PM
Cambios en lIsDir
Posted: Tue Jul 08, 2008 12:14 AM

Hola Antonio, gracias por tu respuesta..........

Pero la funcion quedo muy limitada, ya que solo verifica directorios que estan en la unidad actual, como los ejemplos anteriores, ya que al asignarle una letra de unidad siempre da .F., aunque el directorio exista en esa unidad, el lIsdir anterior tenia esa cualidad de verificar en cualquier unidad el directorio.

Pienso modestamente que la funcion anterior es mejor que la actual....

Pero ya lo solucione copiando la funcion anterior dentro de mi programa lo cual ha funcionado super bien.

Y por Ultimo el mensaje que envia el LCHDIR() cuando no existe es un mensaje del propio Windows y no hay alternativa de colocarle el mensaje que uno quiere. en la version anterior de fivewin 7.01 que trabajaba todo funcionaba bien

Saludos

Fivewin-Xharbour 24.09, Iquique, Chile

Continue the discussion