Envoyé par
Emmanuel Deloget
Il n'y a pas un FileSeek64 qui renvoie un entier de 64 bits ? (c'est quoi cette API ?)
J'ail l'impression que c'est un truc spécifique à C++ Builder
Envoyé par
flowp
j'ai un problème pour récupéré la taille d'un fichier > à 2 Go.
...
J'ai essayé toute sorte de variables (long, double) mais rien n'y fait.
Dans ce cas, il faut utiliser les bonnes API
Sous Windows, GetFileSizeEx(), cela retourne la taille sur un nombre 64 bits (donc cela gère les tailles supérieure à 2 GO).
Il faut ouvrir le fichier avec la fonction OpenFile() et ne pas oublier de refermer le fichier ensuite avec CloseHandle().
La même chose peut être faite sans ouvrir le fichier avec GetFileAttributesEx().
Sous Unix/Linux, il doit exister une API similaire.
Autre chose, on évite d'utiliser des valeurs magiques dans le code :
FileSeek(FichierHandle, 0, 2);
et on utilise les constantes, c'est plus facilement lisible (même si c'est commenté)
FileSeek(FichierHandle, 0, SEEK_END);
D'ailleurs, c'est quoi ce 0 ?
Partager