| Savoir si un fichier est déjà ouvert par une application | |
|
|
Auteur | Message |
---|
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Savoir si un fichier est déjà ouvert par une application Mar 23 Sep 2014 - 13:33 | |
| La version actuelle de Panoramic : Version 0.9.25 du 19 Avril 2014, possède pas moins de 50 commandes sur les fichiers. Mais il en manque (au moins une !) : une commande pour savoir si un fichier est oui ou non utilisé par une autre application ? Quelque chose comme FILE_IN_USE F ou bien IS_FILE_OPEN F ( ou autre syntaxe) qui retournerait 1 si le fichier F est déjà ouvert et 0 sinon. Cette remarque / demande a été soulevé par Klaus ici@Klaus Tu veux bien incorporer dans KGF.DLL une fonction de ce type ? Comme Panoramic plante carrément au lieu de gérer l'erreur de violation de partage et comme Delphi s'en sort bien, je te soumets ce code delphi récupéré sur le net qui réalise cette fonction : - Code:
-
{ ============================================================================== } function FichierOuvert(NomFichier : string; CodeRetour:Integer):Boolean; //Test si un fichier est ouvert ou indisponible // CodeRetour = 0 pas ouvert - 32 : violation de partage - sinon autre erreur Var F:TextFile; begin FichierOuvert := True ; // Test du fichier AssignFile(F,NomFichier); {$I-} Reset(F); {$I+} CodeRetour := IOResult ; Case IOResult Of // Pas d'erreur 0 :Begin CloseFile(F); FichierOuvert := False ; // ShowMessage('Le fichier existe et n''est pas ouvert.'); End; // L'erreur 32 est une violation de partage 32: Begin // ShowMessage('Le fichier est déjà ouvert.'); End ; Else // Autre erreur // ShowMessage('Erreur '+IntToStr(IOResult)); End; End;
| |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Savoir si un fichier est déjà ouvert par une application Mar 23 Sep 2014 - 15:18 | |
| Oui, Cosmos70. En Delphi, je sais faire. Et s'il n'y a pas d'autre solution prochainement, c'est ce que je vais faire. | |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| |
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| |
| |
Invité Invité
| Sujet: Re: Savoir si un fichier est déjà ouvert par une application Mar 23 Sep 2014 - 19:13 | |
| Merci Klaus. Me voila rajeuni de deux ans. Continu comme cela, et je me retrouve au chômage. |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Savoir si un fichier est déjà ouvert par une application Mar 23 Sep 2014 - 21:21 | |
| Oups... Toutes mes excuses pour le confusion. La suggestion était intéressante, et je la garde dans ma To-Do list pour la prochaine version. | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Savoir si un fichier est déjà ouvert par une application Mer 24 Sep 2014 - 14:35 | |
| La nouvelle version de KGF.dll de ce jour contient une nouvelle fonction: res% = dll_call1("IsFileLocked",adr(nom$)) Elle retourne 1 si le fichier est verrouillé, et 0 si le fichier est inexistant ou libre.
| |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Savoir si un fichier est déjà ouvert par une application Mer 24 Sep 2014 - 15:31 | |
| Merci Klaus, ça peut toujours servir. | |
|
| |
Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Savoir si un fichier est déjà ouvert par une application Mer 24 Sep 2014 - 17:58 | |
| C'est certain et c'est clairement une fonction qui devrait idéalement être native dans Panoramic | |
|
| |
Contenu sponsorisé
| Sujet: Re: Savoir si un fichier est déjà ouvert par une application | |
| |
|
| |
| Savoir si un fichier est déjà ouvert par une application | |
|