2010-09-28 7 views
0

Pourquoi cela ne fonctionne-t-il pas?À propos de StreamReader

StreamReader m = new StreamReader("../folder1/email.html", System.Text.Encoding.UTF8); 

fichier de code et le fichier html sont dans des dossiers diff donc je que son une question de chemin, mais ce ne est pas parce que je Copié maintenant ce fichier html dans le même dossier dans lequel ce fichier de code est et le code changé pour:

StreamReader m = new StreamReader("email.html", System.Text.Encoding.UTF8); 

ne fonctionne toujours pas .. Qu'est-ce qui ne va pas? La syntaxe est-elle incorrecte ou quoi?

+0

Quel est le message d'erreur que vous recevez? –

+2

* Ne fonctionne pas * n'est pas une description très précise du problème. Avez-vous une exception? –

+2

S'il vous plaît lire http://tinyurl.com/so-hints pour améliorer cette question au point où il peut être répondu. – Richard

Répondre

2

Si vous utilisez un chemin relatif, il sera par rapport au bac/debug ou bin/dossier de sortie, pas le dossier de projet dans lequel votre fichier de code est, alors essayez:

m= new StreamReader("../../email.html", System.Text.Encoding.UTF8); 
+0

J'ai essayé ceci .. il n'a pas fonctionné – Serenity

+0

Il obtiendrait une exception si l'emplacement de dossier était erroné et selon ses commentaires il n'y a aucune exception. –

+2

et je suis une fille pas un he:/ – Serenity

1

Vous dites qu'il n'y a pas d'exception avec votre code. Cela signifie que le fichier est ouvert avec succès pour la lecture. Je soupçonne que vous ne lisez rien de ce StreamReader, vous l'instanciez simplement et ne libérez probablement pas.

Assurez-vous de disposer de ce flux ou vous risquez de laisser échapper des poignées. Si tout ce que vous devez faire est de lire le contenu du fichier, vous pouvez utiliser la méthode ReadAllText:

string contents = File.ReadAllText("email.html"); 

Si le fichier est introuvable, vous obtiendrez une exception.

+0

J'ai écrit m.Close(); après avoir lu le fichier n en l'utilisant..n'est-ce pas comment vous disposer? Je dois utiliser StreamReader seulement – Serenity

+0

Vous disposez correctement avec l'instruction [using] (http://msdn.microsoft.com/en-us/library/yh598w02.aspx). –

1

Vous n'êtes probablement pas lisez il ... essayez ceci ... mettez le fichier dans votre répertoire Bin/Debug et ...

StreamReader m = new StreamReader("email.html", System.Text.Encoding.UTF8); 

Console.Write(m.ReadToEnd()); 

Console.ReadLine(); 
+0

Est-ce que ReadToEnd() ne fait pas exactement cela? lire le fichier ?? J'ai essayé votre code .. ne fonctionne toujours pas – Serenity

+0

Êtes-vous en mode de débogage ou de libération. Ne mettez pas l'email.html dans le répertoire du fichier de code ... mettez-le dans le répertoire Bin/Debug et/ou Bin/Release ... les dossiers où réside le fichier exécutable. – explorer