2009-03-06 10 views
0

Je travaille actuellement sur une DLL VB.NET, et l'une des fonctions que j'écris est supposée prendre un fichier, et extraire un tableau d'octets (le méthode que j'ai travaux, et peut être abstraite ici). Quel est le meilleur moyen de passer un fichier à cette fonction? Est-ce que le passage d'un nom de fichier serait le meilleur, ou quel serait le meilleur moyen d'y parvenir?Meilleur moyen de passer un fichier à une fonction

Répondre

2

FileStream Class

échantillon à partir du lien ci-dessus

Private Shared Sub AddText(ByVal fs As FileStream, ByVal value As String) 
    Dim info As Byte() = New UTF8Encoding(True).GetBytes(value) 
    fs.Write(info, 0, info.Length) 
End Sub 
+0

Pas tout à fait ce que je voulais dire, mais cela a résolu mon problème, merci :) – Sukasa

0

Les noms de fichiers sous forme de chaîne sont une ancienne méthode standard école de traitement des dossiers. C'est un paramètre que les gens savent comment régler correctement et utiliser. Je suis d'accord avec Fredou ci-dessus et Greg D qu'un FileStream est le meilleur moyen d'y aller. Ils sont simplement plus faciles à faire les choses de la bonne façon.

+0

Ne pas passer autour de filepaths/filename comme des chaînes sauf si vous avez absolument _must_. Les filestreams (ou leur équivalent logique) sont largement supérieurs. –

+0

Beaucoup de raisons. L'élimination de la condition de race File.Exists. L'utilité établie d'un FileStream (comment l'API doit-elle traiter l'accès refusé sur un chemin invalide, par exemple? Si elle doit de toute façon lancer une exception, laissez l'utilisateur de l'API s'en occuper directement). Les filestreams sont intrinsèquement plus valides. –

+0

J'ai oublié de mentionner que le passage d'un flux de fichiers rend l'API plus facile à transmettre plus tard juste un flux. De cette façon, les utilisateurs peuvent envoyer des données à partir de n'importe quel flux, et pas seulement d'un fichier, et obtenir une utilisation générale de l'API pour pratiquement aucun coût supplémentaire. –

Questions connexes