2016-03-18 3 views
0

J'ai donc essayé d'utiliser io ntfs dll trinet core pour obtenir des flux de données alternatifs en C# (en utilisant VS 2015), mais j'ai un problème: je ne pouvais pas trouver un moyen d'écrire dans un fichier. Le code que j'ai essayé:Comment utiliser Trine Core io NTFS?

var fileinfo = new FileInfo(filename); 
var altstream = fileinfo.GetAlternateDataStream("key").OpenWrite(); 
altstream.WriteLine(Convert.ToString(radix)); 
altstream.WriteLine(Convert.ToString(push)); 
altstream.WriteLine(Convert.ToString(mult)); 
altstream.WriteLine(Convert.ToString(fill)); 

Il jette juste un message d'erreur avant de debug:

« FileStream » ne contient pas de définition de « WriteLine » et aucune méthode prolongation « WriteLine » accepter une première argument de type « FileStream » n'a pu être trouvée (vous manque une directive à l'aide ou une référence d'assemblage ?)

Comment dois-je faire? Je ne peux pas trouver cela sur le web mais j'ai besoin de l'utilisation de flux de données alternatifs pour mon projet.

Répondre

1

altstream est une instance FileStream. FileStream ne comprend que les octets, pas les chaînes. Pour convertir des chaînes (caractères) en octets, vous devez choisir un système de codage de caractères, par exemple Ascii, UTF8, UTF16, etc.

Une fois que vous avez choisi un encodage, vous pouvez utiliser la classe StreamWriter capable d'écrire directement des chaînes dans des fichiers:

FileStream altstream = fileinfo.GetAlternateDataStream("key").OpenWrite(); 

// Note that I've picked UTF8 as an encoding. You need to figure out 
// for yourself, based on your requirements or desires, what encoding 
// to use. UTF8 is a popular encoding though. 
StreamWriter altstreamWriter = new StreamWriter(altstream, Encoding.UTF8); 

altstreamWriter.WriteLine(Convert.ToString(radix)); 
altstreamWriter.WriteLine(Convert.ToString(push)); 
altstreamWriter.WriteLine(Convert.ToString(mult)); 
altstreamWriter.WriteLine(Convert.ToString(fill));