Calculer la taille d'un fichier

UniXUniX Membre
15:51 modifié dans API AppKit #1
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 :
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 ?

Réponses

  • AliGatorAliGator Membre, Modérateur
    octobre 2005 modifié #2
    dans 1129290754:
    C'est quoi qui cloche ?
    Heu déjà  tu prends le intValue de la taille et non pas un floatValue, ça doit pas jouer mais bon. Dans l'exemple de la doc ils utilisent longlongValue plutôt. C'est pas impossible que ce soit dû à  ça, en particulier qu'un int soit inssuffisant pour contenir la valeur ?

    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"
    NSFileSize (in bytes) ---> NSNumber containing an unsigned long long
  • tabliertablier Membre
    15:51 modifié #3
    Hi,
    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]
  • UniXUniX Membre
    15:51 modifié #4
    <3 <br />
    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.
Connectez-vous ou Inscrivez-vous pour répondre.