Extrait de la doc
Pour que l'ouverture du fichier avec OpenFile() soit un succès, le fichier doit avoir les droits en lecture et écriture. Ceci peut devenir un problème si il faut manipuler des fichiers sur un CD-Rom par exemple. Dans ce cas, il convient d'utiliser ReadFile() quand seule la lecture du fichier est nécessaire.
Théorie.
Je pense donc que lorsqu'on utilise OpenFile le fichier doit être considéré comme "en cours d'utilisation" et pas avec readfile().
D'ailleurs je le démontre ici :
(re-modifie ton chemin ligne 1)
Code : Tout sélectionner
fichier.s = "E:\MULTIMEDIA\PUREBASIC\5.30\test_list.pb"
Taille = FileSize(fichier)
OK = 0
file = OpenFile(#PB_Any,fichier,#PB_File_Append | #PB_File_SharedRead)
If file <> 0 And Taille > 0
OK=1
Else
OK = 0
EndIf
CloseFile(file)
; Comme mon fichier est fermé, la commande MD5 va marcher.
If OK = 1
Debug "Version OPENFILE - md5 : " + MD5FileFingerprint(fichier)
file = ReadFile(#PB_Any,fichier)
Debug "Version READFILE - md5 : " + MD5FileFingerprint(fichier)
CloseFile(file)
EndIf
Mais comme l'a dit majikeyric, MD5FileFingerprint se suffit à lui même. ça évite justement plusieurs accès à un fichier déjà "ouvert".