Programación General > Visual Basic 6.0 e inferiores

 Problema Con Verificación De Existencia De Fichero

(1/1)

Sagutxo:
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 ---base.mdb==> Base_050913.zip, si este fichero existe pasa a ser Base_050913_1.zip y así hasta que el fichero no exista. Dim AttrDev%AttrDev = GetAttr(ValDir)    If AttrDev <> 32 Then  no existe 

Juanolo:
Hola Sagutxo!

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


--- Código: Text ---Public Function ExisteArchivo(ArchTmp As String) As Boolean    If Len(Dir$(ArchTmp)) = 0 Then        ExisteArchivo = False    Else        ExisteArchivo = True    End IfEnd Function 
Y la utilizo:


--- Código: Text ---If ExisteArchivo(Base_050913_1.zip) then   ...End If 
Sé que no responde a tu pregunta específica, pero quizás te pueda servir.

Salu2.

Sagutxo:
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.

patitofeo:
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 --- base.mdb==> Base_050913.zip, si este fichero existe pasa a ser Base_050913_1.zip y así hasta que el fichero no exista. If Dir(ValDir) = "" Then     El Fichero no ExisteEnd If  
Podeis buscarlo en la ayuda. Es realmente comodo

Saludos

Sagutxo:
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:

Navegación

[0] Índice de Mensajes

Ir a la versión completa