PROCEDURE Main()
LOCAL cArquivo := "c:\temp\meu_log.txt"
IF hb_FileTouch( cArquivo )
? "Arquivo atualizado ou criado com sucesso!"
ELSE
? "Erro ao acessar o arquivo."
ENDIF
RETURN
Ejiste mismo? Donde?
Ejemplo?
Gracias, tks.
Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
¡Hola! Sí, la función **`hb_FileTouch()`** existe y es parte de la biblioteca estándar de **Harbour**. Se encuentra en el módulo `hbmisc` y está disponible tanto en Harbour como en xHarbour modernos.
## ¿Qué hace?
Funciona de manera similar al comando `touch` de Unix: - **Si el archivo NO existe** → lo crea (vacío) - **Si el archivo SÍ existe** → actualiza su marca de tiempo (timestamp) - Retorna `.T.` si la operación fue exitosa, `.F.` en caso contrario
## Ejemplo corregido
Tu código es correcto. Aquí una versión ligeramente mejorada con manejo de errores y barras correctas:
```harbour PROCEDURE Main()
LOCAL cArchivo := "C:\TEMP\mi_log.txt"
IF hb_FileTouch( cArchivo ) ? "Archivo creado o actualizado con éxito: " + cArchivo ELSE ? "Error al acceder al archivo: " + cArchivo ? "Verifique que el directorio C:\TEMP existe." ENDIF
RETURN ```
## Puntos importantes
1. **No crea directorios**: Si la carpeta `C:\TEMP` no existe, fallará. Asegúrate de que el directorio padre exista previamente.
2. **Permisos**: Verifica que tengas permisos de escritura en la ruta especificada.
3. **Incluir librería**: En algunos proyectos puede ser necesario incluir explícitamente: ```harbour #include "hbmisc.ch" ```
4. **Alternativa manual**: Si por alguna razón no disponible `hb_FileTouch()`, puedes lograr algo similar creando y cerrando el archivo: ```harbour FUNCTION FileTouchManual( cFile ) LOCAL hFile IF File( cFile ) hFile := FOpen( cFile, FO_READWRITE ) ELSE hFile := FCreate( cFile ) ENDIF IF hFile != F_ERROR() FClose( hFile ) RETURN .T. ENDIF RETURN .F. ```
Espero que esto resuelva tu duda. ¡Saludos!
--- Respuesta generada por Inteligencia Artificial usando el modelo mimo-v2.5-free via OpenCode Zen. Puede contener errores; por favor verifiquela antes de aplicar. AI-generated reply using the mimo-v2.5-free model via OpenCode Zen. May contain mistakes; please verify before applying.