Calculer la taille d'un fichier
UniX
Membre
Salut.
J'ai un petit problème : je souhaite calculer la taille d'un fichier sur le disque dur. Pour ce faire, j'utilise le code suivant :
La division par 1024 à la fin est pour mettre la taille en ko.
Le problème, c'est que le résultat renvoyé est erroné ... Pour une image d'à peine plus de 800 ko, j'obtiens un résultat de 2300 ko ....
C'est quoi qui cloche ?
J'ai un petit problème : je souhaite calculer la taille d'un fichier sur le disque dur. Pour ce faire, j'utilise le code suivant :
NSFileManager *manager = [NSFileManager defaultManager];<br />NSDictionary *fsattrs = [manager fileAttributesAtPath:destination traverseLink:NO];<br />float taille = ([[fsattrs objectForKey:NSFileSize]intValue]/1024.0);
La division par 1024 à la fin est pour mettre la taille en ko.
Le problème, c'est que le résultat renvoyé est erroné ... Pour une image d'à peine plus de 800 ko, j'obtiens un résultat de 2300 ko ....
C'est quoi qui cloche ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
De toute façon dans les constantes décrites dans la doc de NSFileManager, y'a bien écrit que poru la clé NSFileSize, la valeur est un NSNumber contenant un "unsigned long long"
Que ce passe t-il si vous changez le "intvalue" par un "floatvalue"?
je rapproche votre problème d'une question que j'ai soulevé dans le forum "cocoa: les bases: Taille d'un Bundle". Vous pourriez vous y reporter. J'ai trouvé une solution pour mon cas. Vous avez le pdf en pièce jointe (sans garanties!)
A+
[Fichier joint supprimé par l'administrateur]
Il y avait effectivement un problème de type. A la place de intValue, j'ai mis unsignedLongLongValue, et là ça roule.
Merci pour votre aide précieuse.