web-dev-qa-db-fra.com

Créer un fichier (.htm) en C #

Je voudrais savoir la meilleure façon de créer un fichier HTML simple en utilisant c #.

Est-ce qu'il utilise quelque chose comme System.IO.File.Create?

17
Johan

Quelque chose comme -

using (FileStream fs = new FileStream("test.htm", FileMode.Create)) 
{ 
    using (StreamWriter w = new StreamWriter(fs, Encoding.UTF8)) 
    { 
        w.WriteLine("<H1>Hello</H1>"); 
    } 
} 
25
ipr101

Je dirai que File.WriteAllText est une manière stupide de rédiger un fichier texte pour C #> = 3.5.

File.WriteAllText("myfile.htm", @"<html><body>Hello World</body></html>");

Je dirai même que File.WriteAllLines est suffisamment stupide pour écrire du HTML plus gros sans trop se battre avec la composition de chaînes. Mais la "bonne" version est uniquement pour C # 4.0 (une version un peu moins bonne est C #> = 2.0)

List<string> lines = new List<string>();
lines.Add("<html>");
lines.Add("<body>");
lines.Add("Hello World");
lines.Add("</body>");
lines.Add("</html>");

File.WriteAllLines("myfile.htm", lines);
// With C# 3.5
File.WriteAllLines("myfile.htm", lines.ToArray());
8
xanatos

Je voudrais aller avec File.Create et ensuite ouvrir un StreamWriter à ce fichier si vous n'avez pas toutes les données lorsque vous créez le fichier . Ceci est un exemple de MS qui peut vous aider

class Test 
{
    public static void Main() 
    {
        string path = @"c:\temp\MyTest.txt";

        // Create the file.
        using (FileStream fs = File.Create(path, 1024)) 
        {
            Byte[] info = new UTF8Encoding(true).GetBytes("This is some text in the file.");
            // Add some information to the file.
            fs.Write(info, 0, info.Length);
        }

        // Open the stream and read it back.
        using (StreamReader sr = File.OpenText(path)) 
        {
            string s = "";
            while ((s = sr.ReadLine()) != null) 
            {
                Console.WriteLine(s);
            }
        }
    }
}
3
Marthin

Jetez un coup d'œil au HtmlTextWriter class. Pour un exemple d'utilisation de cette classe, consultez par exemple http://www.dotnetperls.com/htmltextwriter .

2
Nubok

Lecture et écriture de fichiers texte et MSDN info . HTML est juste un simple fichier texte avec l'extension * .HTML;)

1
neurotix

Ouvrir simplement un fichier en écriture (à l’aide de File.OpenWrite () par exemple) créera le fichier s’il n’existe pas encore.

0
Sjoerd

Si vous consultez http://msdn.Microsoft.com/en-us/library/d62kzs03.aspx vous pouvez trouver un exemple de création de fichier.

Mais comment voulez-vous créer le contenu du fichier html? Si c'est juste statique, vous pouvez simplement l'écrire dans un fichier. Si vous devez créer le code HTML à la volée, vous pouvez utiliser un fichier ASPX avec le balisage approprié et utiliser Server.Execute pour obtenir le code HTML sous forme de chaîne. 

0
Wouter de Kort

Oui, System.IO.File.Create(Path) va créer votre fichier très bien . Vous pouvez aussi utiliser un filestream et y écrire. Semble plus pratique d’écrire un fichier htm

0
Frederiek