Warum Größe Befestigung gegeben durch Outlook-Programmierschnittstelle ist immer falsch?

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

  •  28-09-2019
  •  | 
  •  

Frage

Der Versuch, Outlook Interop in C # zu verwenden, bemerkte ich eine seltsame Sache.

die reale Größe einer gespeicherten Datei und eine Größe von Outlook gegeben Vergleich, merke ich, dass die reale, gespeicherte Datei ist immer kleiner als von Attachment.Size erwartet. Die gespeicherten Dateien zu sein scheinen gültig und nicht abgeschnitten.

Probenergebnisse http://www.freeimagehosting.net/uploads /224d342eba.png

Also, was ist los mit ihm? Gibt es einen Fehler in Attachment.Size? Oder vielleicht wird erwartet, etwas anderes als die Größe eines Anhangs geben?

Ich dachte, es CR in CRLF umwandelt, einschließlich binären Dateien, die den Overhead erklären können, aber einige angehängten Dateien sind im Raw-Textformat mit CRLF, so dass diese Hypothese falsch ist.


Erste edit:

Es ist nicht Base64-Codierung, weil Base64-Codierung wäre:

  • 4/3 Verhältnis. In meinem Fall habe ich ein Verhältnis, das nicht so weit von 1,0 ist.
  • Proportional. Es ist hier nicht der Fall: a. 1,9 MB Datei einen Overhead von 181 Bytes hat, während eine 27-KB-Datei einen Overhead von 3 KB hat

Jetzt, fast zufällig Overhead in einem Bereich von 89 bis 3658 Bytes suchen, ich würde zustimmen, dass es vielleicht einige seltsame Header sein.


Zweite bearbeiten:

Getestet habe ich diese auf einer größeren Gruppe von Dateien. Was ich Hinweis ist, dass die Differenz zwischen dem realen Dateigröße und der Größe von Outlook angegeben:

  • Ist immer null für eine MSG-Anlage. Aber MSG-Anlage ist ein ganz besonderer Fall und hat ein sehr seltsames Verhalten.
  • Sie beeinflusst durch beide Dateierweiterung und die Länge der Dateinamen.
  • Für die gleiche Dateierweiterung ist in den meisten Fällen, aber nicht immer , größer, wenn die Länge des Dateinamens ist größer.

Hier ist ein Beispiel:

alt text http://www.freeimagehosting.net/ uploads / a767d3cacf.png

IMHO, Outlook tut etwas mit dem Namen der Datei, eine Art sehr seltsamer Codierung, vielleicht eine Erzeugung einer eindeutigen Kennung basierend auf Dateinamen . Dies bedeutet, dass:

  • , wenn die Datei größer ist, die eindeutige Kennung ist zu größer.
  • wenn eine Kollision geschieht, geschieht etwas mit der eindeutigen Kennung, es viel zu machen, viel größer: Reihe 18 hat die gleichen Dateinamen wie Zeile 11, aber die Datei ist nicht das gleiche; auf der anderen Seite, Zeilen 12, 13 und 14 haben die gleiche Datei.
War es hilfreich?

Lösung

Ich bin mir nicht sicher, aber ich würde davon ausgehen, dass es MIME-Header sein könnte und / oder Kopf kodieren. Weitere Informationen Blick auf diese Wiki Artikel über Base64 und für das Wort Overhead suchen.

Edit: Sorry, ich war nicht ganz klar, ich meinte den Base64 Artikel nur als ein Beispiel, dass es möglicherweise Overhead-Codierung in Beziehung gesetzt werden, nicht, dass es tatsächlich Base64 war da, wie von anderen erwähnt, Overhead-Base64 würde wahrscheinlich viel größer als die Unterschiede.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top