Pourquoi la taille de fixation donnée par l'interface de programmation Outlook est toujours tort?

StackOverflow https://stackoverflow.com/questions/3078622

  •  28-09-2019
  •  | 
  •  

Question

Essayer d'utiliser Outlook Interop en C #, j'ai remarqué une chose curieuse.

En comparant la taille réelle d'un fichier enregistré et d'une taille donnée par Outlook, je remarque que le réel, fichier enregistré est toujours plus faible que prévu de Attachment.Size. Les fichiers sauvegardés semblent être valides et non tronquée.

résultats d'exemples http://www.freeimagehosting.net/uploads /224d342eba.png

Alors, quel est le problème? Y at-il un bogue dans Attachment.Size? Ou peut-être il est prévu de donner autre chose que la taille d'une pièce jointe?

Je pense qu'il convertit CR à CRLF, y compris les fichiers binaires, ce qui peut expliquer les frais généraux, mais certains fichiers joints sont au format texte brut avec CRLF, cette hypothèse est fausse.


Première édition:

Il n'est pas Base64, car l'encodage base64 serait:

  • rapport 03/04. Dans mon cas, j'ai un rapport qui est pas loin de 1.0.
  • proportionnelle. Il est pas le cas ici. Un fichier de 1,9 Mo a une surcharge de 181 octets, alors qu'un fichier de 27 Ko a une surcharge de 3 Ko

Maintenant, regardant en tête presque au hasard dans une gamme de 89 à 3658 octets, je suis d'accord qu'il pourrait y avoir des têtes étranges.


Deuxième édition:

Je l'ai testé cela sur un ensemble de fichiers plus volumineux. Ce que je remarque est que la différence entre la vraie taille du fichier et la taille donnée par Outlook:

  • est toujours égale à zéro pour une pièce jointe .msg. Mais l'attachement .msg est un cas très particulier et d'avoir un comportement très étrange.
  • est influencé à la fois par extension de fichier et la longueur du nom de fichier.
  • Pour la même extension de fichier, est, dans la plupart des cas, mais pas toujours , plus grand lorsque la longueur du nom de fichier est plus grand.

Voici un exemple:

texte alt http://www.freeimagehosting.net/ ajouts / a767d3cacf.png

à mon humble avis, Outlook ne quelque chose avec le nom du fichier, une sorte d'encodage très étrange, peut-être une génération d'un identifiant unique en fonction du nom de fichier . Cela signifie que:

  • lorsque le fichier est plus grand, l'identifiant unique est plus grand aussi.
  • lorsque la collision se produit, quelque chose arrive à l'identifiant unique, ce qui en fait beaucoup, beaucoup plus grand: la ligne 18 a le même nom de fichier que la ligne 11, mais le fichier est pas le même; d'autre part, les lignes 12, 13 et 14 ont le même fichier.
Était-ce utile?

La solution

Je ne suis pas sûr, mais je suppose qu'il pourrait être en-têtes MIME et / ou codant les frais généraux. Pour plus d'informations, consultez ce article Wiki sur les base64 et la recherche de la surcharge de mots.

Edit: Désolé, je ne suis pas très clair, je voulais dire l'article base64 comme un exemple de ce qu'il pourrait y avoir les frais généraux liés à l'encodage, pas qu'il était en fait base64 puisque, comme mentionné par d'autres, les frais généraux base64 probablement être beaucoup plus grande que ces différences.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top