AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente.  Haga clic aquí  para ver la versión en inglés.
Ayuda / WLanguage / Funciones WLanguage / Funciones estándar / Funciones de archivos externos
  • La cerradura no era set
  • Bloqueo de un archivo
  • Posición en el fichero
  • Modo de funcionamiento en Windows Vista (y posterior)
Bloquea total o parcialmente un archivo externo.. El archivo se desbloqueará:
  • utilizando la función .Unlock,
  • cuando se cierra el expediente.
La aplicación que ha bloqueado el fichero puede leerlo y escribir en él.. Las otras aplicaciones no pueden leer este fichero ni escribir en él.
Ejemplo
// Open an external file
MyTextFile is DiskFile 
ResLock is boolean
IF MyTextFile.Open("C:\MyDirectories\File.txt", foReadWrite) = True THEN
...
// Lock the external file
ResLock = MyTextFile.fLock()
...
END
Sintaxis
<Result> = <File used>.Lock([<First byte to lock> [, <Number of bytes to lock>]])
<Result>: booleano
  • True si se bloqueó el archivo,
  • False en caso contrario.
<File used>: Variable de tipo DiskFile
Nombre de la variable DiskFile inicializada con <Variable FichierDisque>.Ouvre o <Variable FichierDisque>.Crée.
<First byte to lock>: Entero opcional
Posición del primer byte a bloquear (0 corresponde al primer byte del fichero).
<Number of bytes to lock>: Entero o constante opcional
  • Número de bytes a bloquear en el archivo.
  • Constante:
    fLockEmptyFile.Lock tiene el mismo comportamiento tanto si el archivo está vacío como si no (ver Comentarios).
Observaciones

La cerradura no era set

La función .Lock devuelve False si no se bloqueó el archivo. La cerradura puede ser set sólo si:
  • se abre el archivo externo,
  • el identificador de archivo es válido,
  • el archivo o los bytes a bloquear no están ya bloqueados por otro ordenador u otra aplicación.

Bloqueo de un archivo

  • El archivo se bloquea por completo si no se especifican y .
  • El archivo se bloquea desde el primer byte a bloquear () hasta el final si no se especifica .
  • Por Default , .Lock no bloquea ningún byte si el archivo está vacío. En este caso, varias aplicaciones pueden "bloquear" con éxito un archivo vacío. Sin embargo, el archivo no puede ser sobrescrito mientras esté bloqueado.
Para obtener el mismo comportamiento sin importar si el archivo está vacío o no, use la constante fLockEmptyFile .
Linux El bloqueo es efectivo entre dos sitios o contextos diferentes. A diferencia de Windows, un Process no puede bloquear un archivo que fue bloqueado previamente.

Posición en el fichero

Al abrir un archivo, la posición actual corresponde a:
  • el primer byte del archivo (por Default),
  • al último byte del archivo si se abre en modo "adición" (constante foAdd).
Esta posición puede ser modificada por <Variable DiskFile>.Seek.
La posición actual no cambia cuando se usa .Lock .
WINDEVWEBDEV - Código ServidorReportes y ConsultasCódigo de Usuario (UMC)

Modo de funcionamiento en Windows Vista (y posterior)

Si esta función no funciona correctamente en Windows Vista (y posterior), compruebe si el archivo o directorio utilizado no está en ninguno de los directorios del sistema (directorio de Windows o directorio "Archivos de programa").
En Windows Vista (y posteriores), con el Mecanismo UAC (Cuenta de usuario control) habilitado, debe tener privilegios de administrador para manipular y/o modificar los archivos o directorios en los directorios del sistema (directorio de Windows o directorio "Archivos de programa").
Consejo de programación: A manipular y/o modificar los archivos o directorios sin privilegios de administrador, debería:
  • evite escribir en el directorio de Windows o en el de "Archivos de programa",
  • utilizar el directorio del sistema de la aplicación (devuelto por SysDir con la constante srAppDataCommun, por ejemplo).
Clasificación Lógica de negocio / UI: Lógica de negocio
Componente: wd290std.dll
Versión mínima requerida
  • Versión 28
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 18/11/2023

Señalar un error o enviar una sugerencia | Ayuda local