2009-02-22 10 views
0

Je suis en train d'écrire une application client Windows qui permettra de télécharger des fichiers et des métadonnées respectives sur un serveur. Par exemple gear.stl (fichier d'origine) et gear.stl.xml (métadonnées). J'essaie de comprendre le protcol correct à utiliser pour transférer les fichiers.Transfert de fichiers avec des métadonnées

Je pensais à utiliser ftp car il est largement utilisé et une méthode éprouvée pour transférer des fichiers, sauf que je devrais transférer 2 fichiers pour chaque fichier réel (.stl et .stl.xml). Cependant, une autre pensée m'avait aussi traversé l'esprit ... Et si je créais un objet et enveloppais le fichier, les métadonnées et le répertoire dont j'avais besoin pour le tranférer, sérialiser l'objet puis soumettre une requête à un webservice, pour transférer le fichier .

La taille du fichier d'origine serait comprise entre 100k et 10MB. La taille des métadonnées serait probablement inférieure à 200k

L'appel de service Web me semble être un processus plus facile pour désérialiser l'objet et distribuer le fichier et les métadonnées respectives en conséquence. Cependant, je ne suis pas sûr que ce soit une bonne idée ou s'il existe un meilleur moyen de transférer ces données que les deux méthodes que j'ai mentionnées.

Si quelqu'un peut me diriger dans la bonne direction, il serait très apprécié.

Répondre

1

Vous pouvez l'envelopper dans un fichier zip comme le fait le "nouveau" format de document bureautique. Vous pourriez même être en mesure d'utiliser leurs classes pour tout emballer.

Edit:

Jetez un oeil à la classe System.IO.Packaging.Package. Cela semble être ce dont vous avez besoin. Cette classe réside dans l'assembly WindowsBase.dll et est disponible dans .NET 3.0. PS: Souvenez-vous que même s'il s'agit d'un fichier zip, il n'a pas besoin d'être compressé. Si vous avez des fichiers très volumineux, il vaut peut-être mieux les garder non compressés. Tout dépend de la façon dont ils vont être utilisés et si la taille du transport est un problème.