2009-04-26 7 views
0

j'ai les méthodes suivantes:terminologie correcte pour la diffusion d'un fichier en octets et le dos

public static byte[] ConvertFileToBytes(string filePath) 
    { 
     var fInfo = new FileInfo(filePath); 
     var numBytes = fInfo.Length; 
     var dLen = Convert.ToDouble(fInfo.Length/1000000); 

     var fStream = new FileStream(filePath, FileMode.Open, FileAccess.Read); 
     var br = new BinaryReader(fStream); 

     var data = br.ReadBytes((int)numBytes); 
     br.Close(); 

     fStream.Close(); 
     fStream.Dispose(); 

     return data; 
    } 

    public static void ConvertBytesToFile(byte[] file, string filePath) 
    { 
     var ms = new MemoryStream(file); 

     var fs = new FileStream(filePath, FileMode.Create); 

     ms.WriteTo(fs); 

     ms.Close(); 
     fs.Close(); 
     fs.Dispose(); 
    } 

Quel est le bon de nommer ces méthodes? (parce que Convertir XXX-YYY juste ne coupe pas dans une bibliothèque Utilitaires)

Répondre

10

Que diriez-vous File.ReadAllBytes et File.WriteAllBytes;)

+0

... haha! Je continue à apprendre une tonne de nouvelles choses tous les jours. Salut mon pote! –

+0

N'essayant pas d'être un imbécile mais j'ai vu cela plusieurs fois. Cette réponse ne répond pas à la question posée. C'est une bonne suggestion cependant. La question concerne ses signatures de méthodes et non leur implémentation. Est-ce que SO voudrait les garder quelque peu cohérentes. –

+0

@Deviant: Je pense que c'est en ce sens que je déduis que les noms corrects devraient être "Lire" et "Écrire". Puisque nous traitons spécifiquement des fichiers, "(de) serialize" est trop générique. Idem pour "marshal", qui je pense a aussi des connotations légèrement différentes. –

2

Les termes habituellement utilisés sont "serialize" et "désérialisation" (ou parfois "marshal" et "demarshal").

+0

Pour moi, "serialize" et "marshal" impliquent que vous avez affaire à une sorte de structure de données qui nécessite une logique spéciale pour la convertir en octets - mais nous avons déjà des octets, ils ont juste besoin d'être écrits dans un fichier ce qui n'est rien d'autre qu'un tas d'octets). –

0

Le regroupement/Unmarshalling peut être le terme approprié.

http://en.wikipedia.org/wiki/Marshalling_(computer_science)

+0

hmm, alors quelle est la différence entre le marshalling et la sérialisation? –

+0

La standardisation est traditionnellement utilisée pour le XML, la sérialisation pour les structures de données en mémoire. Ni s'applique vraiment à la tâche simple d'écrire des octets directement dans un fichier. –

0

En C++, ils seraient appelés lecture et d'écriture.

0

Les WriteAllBytes et ReadAllBytes sont une bonne idée, mais pour répondre à votre question ...

Save() serait un bon choix pour le renommage de ConvertToFile() et Object.CreateFromFile() pour l'inverse.