2011-08-24 2 views
0

D'abord, désolé pour mon anglais.Charger les pièces jointes noms sans pièces jointes dans C#

Je voudrais afficher une liste de fichiers de noms de pièces jointes sur la boîte aux lettres. Ensuite, à partir de cette liste, les utilisateurs peuvent choisir les pièces jointes qu'ils souhaitent télécharger sur hdd - comme par exemple dans ce programme: http://www.mailresender.com.ar/Read.html

Je l'ai déjà écrit dans ce Koolwired.Imap:

for (int i = 0; i < mbStructure.BodyParts.Count; i++) // i = number of parts of body 
{ 
    if (mbStructure.BodyParts[i].Attachment) 
    { 
     mbStructure = command.FetchBodyPart(mbStructure, i); 
     System.Console.WriteLine(mbStructure.BodyParts[i].Disposition); // Disposition contains file name 
     //System.Console.WriteLine(mbStructure.BodyParts[i].Data); // Data contains entire file 
     } 
} 

mais le problème est que non seulement le nom du fichier est chargé en mémoire mais aussi le binaire de données (le fichier entier est chargé par la méthode FetchBodyPart) - donc si les fichiers en pièce jointe ont une taille importante (par exemple 20 Mo), ces 20 Mo doivent également être chargé en mémoire, afin d'afficher la liste des noms de fichiers durera très très longtemps.

Existe-t-il un moyen de charger uniquement les noms de fichiers de pièces jointes sans fichiers? Quelle bibliothèque de C# pourrait supporter cela?

Répondre