Delphi - Otra cosa

 
Vista:

Otra cosa

Publicado por laura (35 intervenciones) el 03/12/2003 23:29:26
Hola, ¿como puedo saber si un archivo está abierto por otro programa y el modo en que está abierto (lectura, escritura, exclusivo, etc.)? gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Otra cosa

Publicado por Fer (269 intervenciones) el 04/12/2003 09:21:19
La rutina que te anexo sirve para determinar si un fichero está en uso exclusivo. Por las características del sistema de ficheros de windows no estoy seguro de que pueda saberse si un programa tiene abierto un fichero en modo no exclusivo o sólo lectura.

{IsFileInUse
--------------------------- CREACION/MODIFICACION ------------------------------
Creación: dd/mm/aaaa Por: http://delphi.about.com/

--------------------------------- PARAMETROS -----------------------------------
Entrada:
El nombre de un fichero
Salida:
True si el fichero está bloqueado para acceso exclusivo, por ejemplo:
- Un fichero grande cuando está siendo grabado, copiado o movido.
False si no está bloqueado o no existe.
---------------------------------- PROPOSITO -----------------------------------
* Hace uso de las units:

- Windows (HFILE, CreateFile)
- SysUtils (FileExists)

--------------------------------------------------------------------------------
}
function IsFileInUse(fName : string) : boolean;
var
HFileRes: HFILE;
begin

result := False;

if not FileExists(fName) then
exit;

HFileRes := CreateFile(pchar(fName),
GENERIC_READ or GENERIC_WRITE,
0, nil, OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0) ;
result := (HFileRes = INVALID_HANDLE_VALUE);

if not result then
CloseHandle(HfileRes);

end;//IsFileInUse
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Gracias

Publicado por laura (35 intervenciones) el 04/12/2003 22:04:11
Gracias por tu ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar