VERROUILER UN FICHIER

cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 - 5 sept. 2003 à 18:29
cs_ELICO Messages postés 8 Date d'inscription mardi 20 mai 2003 Statut Membre Dernière intervention 29 juillet 2011 - 25 juil. 2011 à 21:52
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/12742-verrouiler-un-fichier

cs_ELICO Messages postés 8 Date d'inscription mardi 20 mai 2003 Statut Membre Dernière intervention 29 juillet 2011
25 juil. 2011 à 21:52
Bonsoir,

En bon débutant...donc mauvais. j' ai pris le code directement en copier coller dans mon source et compiler l'ensemble dans "DELPHI7".

Le résultat ne c'est pas fait attendre, erreur la variable .....inconnue.

.....
// on récupére la taille du fichier
wSize:= GetFileSize(HandleFich, @wHSize);
// on doit donné a LockFile la partie du fichier a verrouiller (c'est borne)
if LockFile(hf, 0, 0, wSize, wHSize) then
result:= HandleFich;
.....
[Erreur] FRetours.pas(542): Identificateur non déclaré : 'hf'

Effectivement cette variable n'est pas déclarée et comme je ne comprend pas tout et ne trouvant aucune explication sur la fonction "LocFile" je ne sais pas à quoi correspond "hf". if LockFile(hf, 0, 0, wSize, wHsize).

peut être que hf correspond à HandleFich.

La raison à des raisons que la raison ignore, Mais l'ignorance c'est pire.

Ceci dit je suis un peu perplexe sur la difficulté rencontrée en DELPHI7 à locker et delocker un fichier partagé sur un réseau.

si, devant mon désarrois, quelqu'un ou quelle qu’une ont une méthode pour me sortir d'une ignorance aussi abyssale; je suis preneur.

Merci d'avance
cs_hamza Messages postés 22 Date d'inscription lundi 2 décembre 2002 Statut Membre Dernière intervention 28 octobre 2010
14 oct. 2008 à 10:54
Bonjour, ça marche trés bien la fonction (LockFichier), mais je sais ne sais pas comment passer le paramètres (HandleFich) a la procedure (UnLockFichier) : vous pouvez m'expliqué avec un petit exemple.

Et si possible de verrouiller le fichier en question même si l'application est fermer.

Merci.
raynaldos Messages postés 10 Date d'inscription mercredi 9 avril 2003 Statut Membre Dernière intervention 20 novembre 2007
19 nov. 2007 à 14:44
Bravo pour les fichiers locker!
Mais comment libérer un dosier ?
J'ai utilisé de façon externe «unlocker» et je voie que ça fonctionne bien et je voie le chemin verrouiller dans la fenêtre
mais comment puis-je le faire avec delphi?
La situation est la suivante; j'ai un petit programme qui a besoin de détruire des tables dans un répertoire puis le répertoire par la suite je réussis à détruire les tables mais quand je viens pour détruire le répertoire il me dit qu'il est utilisé par une personne ou un programme.
Avec «unlocker» je réussis à enlever les locks sur le répertoire mais je ne veut pas avoir à utilisé «unlocker» quel serait le code?
phephelavi Messages postés 40 Date d'inscription mardi 16 mai 2006 Statut Membre Dernière intervention 27 octobre 2009
17 janv. 2007 à 10:44
Très bien le code et ca fonctionne !

Juste une question : et pour verrouiller un dossier de Windows, avez un code similaire ? Est-ce possible ?

Merci pour votre réponse, ca m'intérresse

Phephalavi
liilmra Messages postés 1 Date d'inscription jeudi 16 décembre 2004 Statut Membre Dernière intervention 16 décembre 2004
16 déc. 2004 à 22:54
tres bien éxpliqué et surtous tres simple
cs_Amadeus Messages postés 123 Date d'inscription mercredi 2 janvier 2002 Statut Membre Dernière intervention 15 mars 2004 2
23 août 2004 à 14:30
La procedure UnLockFichier attend en paramètre le handle du fichier vérrouillé par LockFichier. Le type hFile est un LongWord.
Alors que toi tu lui passes un string. A la procedure UnLockFichier tu n'as qu'a lui paaser ce que renvoie la fonction LockFichie.
Razorus Messages postés 3 Date d'inscription mercredi 23 octobre 2002 Statut Membre Dernière intervention 25 décembre 2004
23 août 2004 à 14:19
pas mal ^^ c'est sur ça vérouille bien :p on pe plus acceder au fichier :p
à part une erreur :
if LockFile(hf, 0, 0, wSize, wHSize) then
hf >> HandleFich
par contre , (dsl je connais rien à delphi :p j'ai lu une dizaine de source, j'comprend petit à petit)
pkoi lorsque j'essaie "unlockfichier"
j'obtient le msg d'erreur :
[Erreur] Project1.dpr(39): Types incompatibles : 'Cardinal' et 'String'

j'utilise bien la fonction Lock , j'rajoute "un" devant et hop msg d'erreur lol
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
16 sept. 2003 à 09:44
Je présente mes excuses à Amadeus pour les allusions blessantes qui ressortent de mes deux commentaires. J'admets volontiers qu'elles n'étaient pas justifiées.
Son message récent prouve, s'il en était besoin, son honnêteté.
Il a droit à tout mon respect.
J'espère qu'il continuera longtemps à partager ses connaissances avec nous. Amen.
Bonne prog' ;-)
cs_Amadeus Messages postés 123 Date d'inscription mercredi 2 janvier 2002 Statut Membre Dernière intervention 15 mars 2004 2
16 sept. 2003 à 09:06
J'ai ajouter le lien par la suite.
Pascail Messages postés 47 Date d'inscription jeudi 17 octobre 2002 Statut Membre Dernière intervention 24 mars 2007
16 sept. 2003 à 07:01
Tu l'a dit toi même : "Voir le code original sur :
http://www.experts-exchange.com/Programming/Programming_Languages/Delphi/Q_20655593.html" dans ta source. Japee a juste voulu REPETER qu'il y avait plus d'infos sur le site, pour TheWhiteShadow. Donc ne monte pas sur tes grans cheveaux, et ne nous ressort pas tes idées d'inquisition, mé ui, on téme :p
cs_Amadeus Messages postés 123 Date d'inscription mercredi 2 janvier 2002 Statut Membre Dernière intervention 15 mars 2004 2
8 sept. 2003 à 13:57
Etant donner que le grand conseil de l'inquisition à déjà son idée sur la chose, je ne vais pas gaspiller mon temps en de veine explication. Vive le partage des connaissance !!
cs_Amadeus Messages postés 123 Date d'inscription mercredi 2 janvier 2002 Statut Membre Dernière intervention 15 mars 2004 2
8 sept. 2003 à 11:26
Désolé de te decevoir mais je n'ai pas pomper le code source, j'ai monté ces deux fonctions à partir de divers renseignement glaner sur le net (fonctionnement de LockFile et OpenFile), de plus je ne vais casiment jamais sur les site anglophone étant d'un niveau extrêmement médiocre. Et lorsque je pompe du code ce qui arrive (dans notre travaille cela est monnaie courante, délai oblige) je l'indique .
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
8 sept. 2003 à 11:17
Oups, mille excuses pour la faute de saisie.
Je voulais dire :
Pour plus de précisions, ou pour avoir l'intégralité de ce code :
http://www.experts-exchange.com/Programming/Programming_Languages/Delphi/Q_20655593.html
Au fait, pour rendre à César ce qui lui appartient, ce code est de :
"anAKiN
Delphi programmer from Poland"
Merci à lui :-)
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
8 sept. 2003 à 11:08
C'est sympa de partager avec la communauté DelphiFr les codes trouvés sur d'autres sites.
Ca le serait encore plus si les codes ainsi copiés-collés l'étaient dans leur intégralité, ou un tant soit peu commentés.
Merci quand même !
Pour plus l'intégralité de ce code, un lien :
http://www.experts-exchange.com/Programming/Programming_Languages/Delphi/Q_20655593.html
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
5 sept. 2003 à 18:29
Cette rentrée de septembre 2003 semble être un bon cru !

A partir de ProtectFile, ne serait-il pas possible de réaliser simplement une fonction indiquant si un fichier donné est déjà verrouillé par une autre application ?
En tous cas, merci pour ce code utile.
Rejoignez-nous