Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-12-2008
Belaix Belaix is offline
Miembro
 
Registrado: nov 2008
Posts: 14
Poder: 0
Belaix Va por buen camino
Evitar error de excepción general con ficheros

Hola

Con esto:

if (FileExists('c:\file.txt') then

Se si el fichero existe ...

Pero como puedo saber si puedo leerlo y no lo está usando otra aplicación?
Responder Con Cita
  #2  
Antiguo 16-12-2008
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Ábrelo dentro de un bloque try...except.

o

Utiliza {I+} ... {I-}
Esto deshabilita las exceptiones y devuelve el resultado en IOResult.
Si lo abres e IOResult=0 entonces tienes permiso para utilizarlo.

Ejemplo del Help de Delphi
Código Delphi [-]
function FileIsThere(FileName: string): Boolean;

{ Boolean function that returns True if the file exists; otherwise,
  it returns False. Closes the file if it exists. }
 var
  F: file;
begin
  {$I-}
  AssignFile(F, FileName);
  FileMode := 0;  {Set file access to read only }
  Reset(F);
  CloseFile(F);
  {$I+}
  FileIsThere := (IOResult = 0) and (FileName <> '');
end;  { FileIsThere }
Responder Con Cita
  #3  
Antiguo 16-12-2008
Belaix Belaix is offline
Miembro
 
Registrado: nov 2008
Posts: 14
Poder: 0
Belaix Va por buen camino
Smile

Joe, acabo de encontrar este código:

Código Delphi [-]
function FileInUse(FileName: string): Boolean;
var hFileRes: HFILE;
begin
  Result := False;
  if not FileExists(FileName) then exit;
  hFileRes := CreateFile(PChar(FileName),
                                    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;

Pero el tuyo me gusta muchiiiisimo más.

Mil gracias duilioisola!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
General SQL error[Oracle][ODBC]Invalid datetime format alfredo torres SQL 2 04-07-2008 22:37:40
Error General Sql Error lock conflict ...deadlock Patricio Varios 1 19-03-2008 14:52:14
general sql error -2147221164 luchin001 Conexión con bases de datos 1 02-12-2004 17:44:49
General SQL Error ander SQL 3 09-09-2004 16:05:07
General SQL ORACLE ODBC error jmbarrio SQL 0 26-02-2004 12:10:19


La franja horaria es GMT +2. Ahora son las 07:59:28.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi