SoloCodigo

Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: Sagutxo en Martes 13 de Septiembre de 2005, 13:39

Título: Problema Con Verificación De Existencia De Fichero
Publicado por: Sagutxo en Martes 13 de Septiembre de 2005, 13:39
Salu2.

   Hasta ahora verificaba la existencia de un fichero con el comando Getattr(Direccion del fichero), si me devolvia el valor 32, el fichero existe.

Si el fichero existe le voy agregando un numero al nombre hasta que no exista, para poder crearlo.

   Pues bien, en 2 de mis discos duros la copia es perfecta, pero tengo uno en el que el formateo es de sectores de 4k en lugar de 512bytes y el valor devuelto pasa a ser 8224
¿Alguien sabe por que ocurre esto?

   Es cierto que podría usar ese valor, 8224, para verificar la existencia, pero sabiendo por que ocurre podría preveer el Formateo en sectores de 1k y 2k.

Muchas gracias.


P.D.
Lo uso para las copias de las DB poniendoles la fecha seguido del nombre, y comprimidas en .zip.

Ejem.

Código: Text
  1. base.mdb==> Base_050913.zip, si este fichero existe pasa a ser Base_050913_1.zip y así hasta que el fichero no exista.
  2.  
  3. Dim AttrDev%
  4. AttrDev = GetAttr(ValDir)
  5.  
  6.   If AttrDev <> 32 Then
  7.   no existe
  8.  
Título: Re: Problema Con Verificación De Existencia De Fichero
Publicado por: Juanolo en Martes 13 de Septiembre de 2005, 15:38
Hola Sagutxo!

Para saber si existe el fichero, yo uso la siguiete funcioncilla, alojada en algún módulo:

Código: Text
  1. Public Function ExisteArchivo(ArchTmp As String) As Boolean
  2.     If Len(Dir$(ArchTmp)) = 0 Then
  3.         ExisteArchivo = False
  4.     Else
  5.         ExisteArchivo = True
  6.     End If
  7. End Function
  8.  

Y la utilizo:

Código: Text
  1. If ExisteArchivo(Base_050913_1.zip) then
  2.    ...
  3. End If
  4.  

Sé que no responde a tu pregunta específica, pero quizás te pueda servir.

Salu2.
Título: Re: Problema Con Verificación De Existencia De Fichero
Publicado por: Sagutxo en Martes 13 de Septiembre de 2005, 16:47
Salu2.

   Si, funciona a la perfección.

No pensé ni por un momento que fuera tan sencillo.

   Me he comido un montón de aplicaciones, de ApliGuide, y la que no me ha dado desbordamiento usa un mensaje de error del windows cuando existe.

Muchas gracias.
Título: Re: Problema Con Verificación De Existencia De Fichero
Publicado por: patitofeo en Miércoles 14 de Septiembre de 2005, 11:43
Mas sencillo aun.    :hola:

La funcion Dir que viene ya definida en el modulo SystemObject
te devuelve el nombre del fichero si este existe y un String vacio "" si no existe.

Código: Text
  1.  
  2. base.mdb==> Base_050913.zip, si este fichero existe pasa a ser Base_050913_1.zip y así hasta que el fichero no exista.
  3.  
  4. If Dir(ValDir) = "" Then
  5.      El Fichero no Existe
  6. End If
  7.  
  8.  

Podeis buscarlo en la ayuda. Es realmente comodo

Saludos
Título: Re: Problema Con Verificación De Existencia De Fichero
Publicado por: Sagutxo en Miércoles 14 de Septiembre de 2005, 12:51
Salu2.
Gracias, ese ejemplo tambien funciona.

   Pos ya sabeis, la funcion Getattr y supongo que setattr y fileattr fallan en HD en el que su formateo no sea alla hecho en sectores de 512bytes

 :smartass: