Partager via


File.WriteAllLines Méthode

Définition

Crée un fichier, écrit une ou plusieurs chaînes dans le fichier, puis ferme le fichier.

Surcharges

WriteAllLines(String, String[], Encoding)

Crée un fichier, écrit le tableau de chaînes spécifié dans le fichier à l’aide de l’encodage spécifié, puis ferme le fichier.

WriteAllLines(String, IEnumerable<String>, Encoding)

Crée un fichier à l’aide de l’encodage spécifié, écrit une collection de chaînes dans le fichier, puis ferme le fichier.

WriteAllLines(String, IEnumerable<String>)

Crée un fichier, écrit une collection de chaînes dans le fichier, puis ferme le fichier.

WriteAllLines(String, String[])

Crée un fichier, écrit le tableau de chaînes spécifié dans le fichier, puis ferme le fichier.

WriteAllLines(String, String[], Encoding)

Source:
File.cs
Source:
File.cs
Source:
File.cs

Crée un fichier, écrit le tableau de chaînes spécifié dans le fichier à l’aide de l’encodage spécifié, puis ferme le fichier.

public:
 static void WriteAllLines(System::String ^ path, cli::array <System::String ^> ^ contents, System::Text::Encoding ^ encoding);
public static void WriteAllLines (string path, string[] contents, System.Text.Encoding encoding);
static member WriteAllLines : string * string[] * System.Text.Encoding -> unit
Public Shared Sub WriteAllLines (path As String, contents As String(), encoding As Encoding)

Paramètres

path
String

Fichier dans lequel écrire.

contents
String[]

Tableau de chaînes à écrire dans le fichier.

encoding
Encoding

Objet Encoding qui représente l’encodage de caractères appliqué au tableau de chaînes.

Exceptions

.NET Framework et les versions .NET Core antérieures à 2.1 : path est une chaîne de longueur nulle, contient uniquement un espace blanc ou contient un ou plusieurs caractères non valides. Vous pouvez rechercher des caractères non valides à l’aide de la méthode GetInvalidPathChars().

path ou contents est null.

Le chemin d’accès spécifié, le nom de fichier ou les deux dépassent la longueur maximale définie par le système.

Le chemin spécifié n’est pas valide (par exemple, il se trouve sur un lecteur non mappé).

Une erreur d’E/S s’est produite lors de l’ouverture du fichier.

path spécifié un fichier en lecture seule.

-ou-

path spécifié un fichier masqué.

-ou-

Cette opération n’est pas prise en charge sur la plateforme actuelle.

-ou-

path spécifié un répertoire.

-ou-

L’appelant n’a pas l’autorisation requise.

path est dans un format non valide.

L’appelant n’a pas l’autorisation requise.

Exemples

L’exemple de code suivant illustre l’utilisation de la méthode WriteAllLines pour écrire du texte dans un fichier. Dans cet exemple, un fichier est créé, s’il n’existe pas déjà, et le texte est ajouté à celui-ci.

using System;
using System.IO;
using System.Text;

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

        // This text is added only once to the file.
        if (!File.Exists(path))
        {
            // Create a file to write to.
            string[] createText = { "Hello", "And", "Welcome" };
            File.WriteAllLines(path, createText, Encoding.UTF8);
        }

        // This text is always added, making the file longer over time
        // if it is not deleted.
        string appendText = "This is extra text" + Environment.NewLine;
        File.AppendAllText(path, appendText, Encoding.UTF8);

        // Open the file to read from.
        string[] readText = File.ReadAllLines(path, Encoding.UTF8);
        foreach (string s in readText)
        {
            Console.WriteLine(s);
        }
    }
}
open System
open System.IO
open System.Text

let path = @"c:\temp\MyTest.txt"

// This text is added only once to the file.
if File.Exists path |> not then
    // Create a file to write to.
    let createText = [ "Hello"; "And"; "Welcome" ]
    File.WriteAllLines(path, createText, Encoding.UTF8)

// This text is always added, making the file longer over time
// if it is not deleted.
let appendText =
    "This is extra text" + Environment.NewLine

File.AppendAllText(path, appendText, Encoding.UTF8)

// Open the file to read from.
let readText = File.ReadAllLines(path, Encoding.UTF8)

for s in readText do
    printfn $"{s}"
Imports System.IO
Imports System.Text

Public Class Test
    Public Shared Sub Main()
        Dim path As String = "c:\temp\MyTest.txt"
        Dim sw As StreamWriter

        ' This text is added only once to the file.
        If File.Exists(path) = False Then

            ' Create a file to write to.
            Dim createText() As String = {"Hello", "And", "Welcome"}
            File.WriteAllLines(path, createText, Encoding.UTF8)
        End If

        ' This text is always added, making the file longer over time
        ' if it is not deleted.
        Dim appendText As String = "This is extra text" + Environment.NewLine
        File.AppendAllText(path, appendText, Encoding.UTF8)

        ' Open the file to read from.
        Dim readText() As String = File.ReadAllLines(path, Encoding.UTF8)
        Dim s As String
        For Each s In readText
            Console.WriteLine(s)
        Next
    End Sub
End Class

Remarques

Si le fichier cible existe déjà, il est tronqué et remplacé.

Étant donné un tableau de chaînes et un chemin d’accès de fichier, cette méthode ouvre le fichier spécifié, écrit le tableau de chaînes dans le fichier à l’aide de l’encodage spécifié, puis ferme le fichier.

S’applique à

WriteAllLines(String, IEnumerable<String>, Encoding)

Source:
File.cs
Source:
File.cs
Source:
File.cs

Crée un fichier à l’aide de l’encodage spécifié, écrit une collection de chaînes dans le fichier, puis ferme le fichier.

public:
 static void WriteAllLines(System::String ^ path, System::Collections::Generic::IEnumerable<System::String ^> ^ contents, System::Text::Encoding ^ encoding);
public static void WriteAllLines (string path, System.Collections.Generic.IEnumerable<string> contents, System.Text.Encoding encoding);
static member WriteAllLines : string * seq<string> * System.Text.Encoding -> unit
Public Shared Sub WriteAllLines (path As String, contents As IEnumerable(Of String), encoding As Encoding)

Paramètres

path
String

Fichier dans lequel écrire.

contents
IEnumerable<String>

Lignes à écrire dans le fichier.

encoding
Encoding

Encodage de caractères à utiliser.

Exceptions

.NET Framework et les versions .NET Core antérieures à 2.1 : path est une chaîne de longueur nulle, contient uniquement un espace blanc ou contient un ou plusieurs caractères non valides définis par la méthode GetInvalidPathChars().

path, contentsou encoding est null.

path n’est pas valide (par exemple, il se trouve sur un lecteur non mappé).

Une erreur d’E/S s’est produite lors de l’ouverture du fichier.

path dépasse la longueur maximale définie par le système.

path est dans un format non valide.

L’appelant n’a pas l’autorisation requise.

path spécifié un fichier en lecture seule.

-ou-

path spécifié un fichier masqué.

-ou-

Cette opération n’est pas prise en charge sur la plateforme actuelle.

-ou-

path est un répertoire.

-ou-

L’appelant n’a pas l’autorisation requise.

Remarques

Si le fichier cible existe déjà, il est tronqué et remplacé.

Vous pouvez utiliser cette méthode pour créer un fichier qui contient les éléments suivants :

  • Les résultats d’une requête LINQ to Objects sur les lignes d’un fichier, obtenues à l’aide de la méthode ReadLines.

  • Contenu d’une collection qui implémente une IEnumerable<T> de chaînes.

S’applique à

WriteAllLines(String, IEnumerable<String>)

Source:
File.cs
Source:
File.cs
Source:
File.cs

Crée un fichier, écrit une collection de chaînes dans le fichier, puis ferme le fichier.

public:
 static void WriteAllLines(System::String ^ path, System::Collections::Generic::IEnumerable<System::String ^> ^ contents);
public static void WriteAllLines (string path, System.Collections.Generic.IEnumerable<string> contents);
static member WriteAllLines : string * seq<string> -> unit
Public Shared Sub WriteAllLines (path As String, contents As IEnumerable(Of String))

Paramètres

path
String

Fichier dans lequel écrire.

contents
IEnumerable<String>

Lignes à écrire dans le fichier.

Exceptions

.NET Framework et les versions .NET Core antérieures à 2.1 : path est une chaîne de longueur nulle, contient uniquement un espace blanc ou contient un ou plusieurs caractères non valides définis par la méthode GetInvalidPathChars().

path ou contents est null.

path n’est pas valide (par exemple, il se trouve sur un lecteur non mappé).

Une erreur d’E/S s’est produite lors de l’ouverture du fichier.

path dépasse la longueur maximale définie par le système.

path est dans un format non valide.

L’appelant n’a pas l’autorisation requise.

path spécifié un fichier en lecture seule.

-ou-

path spécifié un fichier masqué.

-ou-

Cette opération n’est pas prise en charge sur la plateforme actuelle.

-ou-

path est un répertoire.

-ou-

L’appelant n’a pas l’autorisation requise.

Exemples

L’exemple suivant écrit des lignes sélectionnées d’un exemple de fichier de données dans un fichier.

using System;
using System.IO;
using System.Linq;

class Program
{
    static string dataPath = @"c:\temp\timestamps.txt";

    static void Main(string[] args)
    {
        CreateSampleFile();

        var JulyWeekends = from line in File.ReadLines(dataPath)
                           where (line.StartsWith("Saturday") ||
                           line.StartsWith("Sunday")) &
                           line.Contains("July")
                           select line;

        File.WriteAllLines(@"C:\temp\selectedDays.txt", JulyWeekends);

        var MarchMondays = from line in File.ReadLines(dataPath)
                           where line.StartsWith("Monday") &&
                           line.Contains("March")
                           select line;

        File.AppendAllLines(@"C:\temp\selectedDays.txt", MarchMondays);
    }

    static void CreateSampleFile()
    {
        DateTime TimeStamp = new DateTime(1700, 1, 1);

        using (StreamWriter sw = new StreamWriter(dataPath))
        {
            for (int i = 0; i < 500; i++)
            {
                DateTime TS1 = TimeStamp.AddYears(i);
                DateTime TS2 = TS1.AddMonths(i);
                DateTime TS3 = TS2.AddDays(i);
                sw.WriteLine(TS3.ToLongDateString());
            }
        }
    }
}
open System
open System.IO

let dataPath = @"c:\temp\timestamps.txt"

let createSampleFile () =
    let timeStamp = DateTime(1700, 1, 1)

    use sw = new StreamWriter(dataPath)

    for i = 0 to 499 do
        let ts1 = timeStamp.AddYears i
        let ts2 = ts1.AddMonths i
        let ts3 = ts2.AddDays i
        ts3.ToLongDateString() |> sw.WriteLine

createSampleFile ()

let julyWeekends =
    File.ReadLines dataPath
    |> Seq.filter (fun line ->
        (line.StartsWith "Saturday"
         || line.StartsWith "Sunday")
        && line.Contains "July")

File.WriteAllLines(@"C:\temp\selectedDays.txt", julyWeekends)

let marchMondays =
    File.ReadLines dataPath
    |> Seq.filter (fun line -> line.StartsWith "Monday" && line.Contains "March")

File.AppendAllLines(@"C:\temp\selectedDays.txt", marchMondays)
Imports System.IO
Imports System.Linq

Class Program
    Shared dataPath As String = "c:\temp\timestamps.txt"

    Public Shared Sub Main(ByVal args As String())
        CreateSampleFile()

        Dim JulyWeekends = From line In File.ReadLines(dataPath) _
            Where (line.StartsWith("Saturday") OrElse _
            line.StartsWith("Sunday")) And line.Contains("July") _
            Select line

        File.WriteAllLines("C:\temp\selectedDays.txt", JulyWeekends)

        Dim MarchMondays = From line In File.ReadLines(dataPath) _
            Where line.StartsWith("Monday") AndAlso line.Contains("March") _
            Select line

        File.AppendAllLines("C:\temp\selectedDays.txt", MarchMondays)
    End Sub

    Private Shared Sub CreateSampleFile()
        Dim TimeStamp As New DateTime(1700, 1, 1)

        Using sw As New StreamWriter(dataPath)
            For i As Integer = 0 To 499
                Dim TS1 As DateTime = TimeStamp.AddYears(i)
                Dim TS2 As DateTime = TS1.AddMonths(i)
                Dim TS3 As DateTime = TS2.AddDays(i)

                sw.WriteLine(TS3.ToLongDateString())
            Next
        End Using
    End Sub
End Class

Remarques

Le comportement par défaut de la méthode WriteAllLines(String, IEnumerable<String>) consiste à écrire des données à l’aide de l’encodage UTF-8 sans marque d’ordre d’octet (BOM). S’il est nécessaire d’inclure un identificateur UTF-8, tel qu’une marque d’ordre d’octet, au début d’un fichier, utilisez la surcharge de méthode WriteAllLines(String, IEnumerable<String>, Encoding) avec l’encodage UTF8.

Si le fichier cible existe déjà, il est tronqué et remplacé.

Vous pouvez utiliser cette méthode pour créer le contenu d’une classe de collection qui prend un IEnumerable<T> dans son constructeur, tel qu’un List<T>, HashSet<T>ou une classe SortedSet<T>.

S’applique à

WriteAllLines(String, String[])

Source:
File.cs
Source:
File.cs
Source:
File.cs

Crée un fichier, écrit le tableau de chaînes spécifié dans le fichier, puis ferme le fichier.

public:
 static void WriteAllLines(System::String ^ path, cli::array <System::String ^> ^ contents);
public static void WriteAllLines (string path, string[] contents);
static member WriteAllLines : string * string[] -> unit
Public Shared Sub WriteAllLines (path As String, contents As String())

Paramètres

path
String

Fichier dans lequel écrire.

contents
String[]

Tableau de chaînes à écrire dans le fichier.

Exceptions

.NET Framework et les versions .NET Core antérieures à 2.1 : path est une chaîne de longueur nulle, contient uniquement un espace blanc ou contient un ou plusieurs caractères non valides. Vous pouvez rechercher des caractères non valides à l’aide de la méthode GetInvalidPathChars().

path ou contents est null.

Le chemin d’accès spécifié, le nom de fichier ou les deux dépassent la longueur maximale définie par le système.

Le chemin spécifié n’est pas valide (par exemple, il se trouve sur un lecteur non mappé).

Une erreur d’E/S s’est produite lors de l’ouverture du fichier.

path spécifié un fichier en lecture seule.

-ou-

path spécifié un fichier masqué.

-ou-

Cette opération n’est pas prise en charge sur la plateforme actuelle.

-ou-

path spécifié un répertoire.

-ou-

L’appelant n’a pas l’autorisation requise.

path est dans un format non valide.

L’appelant n’a pas l’autorisation requise.

Exemples

L’exemple de code suivant illustre l’utilisation de la méthode WriteAllLines pour écrire du texte dans un fichier. Dans cet exemple, un fichier est créé, s’il n’existe pas déjà, et le texte est ajouté à celui-ci.

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

        // This text is added only once to the file.
        if (!File.Exists(path))
        {
            // Create a file to write to.
            string[] createText = { "Hello", "And", "Welcome" };
            File.WriteAllLines(path, createText);
        }

        // This text is always added, making the file longer over time
        // if it is not deleted.
        string appendText = "This is extra text" + Environment.NewLine;
        File.AppendAllText(path, appendText);

        // Open the file to read from.
        string[] readText = File.ReadAllLines(path);
        foreach (string s in readText)
        {
            Console.WriteLine(s);
        }
    }
}
open System
open System.IO

let path = @"c:\temp\MyTest.txt"

// This text is added only once to the file.
if File.Exists path |> not then
    // Create a file to write to.
    let createText = [ "Hello"; "And"; "Welcome" ]
    File.WriteAllLines(path, createText)

// This text is always added, making the file longer over time
// if it is not deleted.
let appendText =
    "This is extra text" + Environment.NewLine

File.AppendAllText(path, appendText)

// Open the file to read from.
let readText = File.ReadAllLines path

for s in readText do
    printfn $"{s}"
Imports System.IO

Public Class Test
    Public Shared Sub Main()
        Dim path As String = "c:\temp\MyTest.txt"
        Dim sw As StreamWriter

        ' This text is added only once to the file.
        If File.Exists(path) = False Then

            ' Create a file to write to.
            Dim createText() As String = {"Hello", "And", "Welcome"}
            File.WriteAllLines(path, createText)
        End If

        ' This text is always added, making the file longer over time
        ' if it is not deleted.
        Dim appendText As String = "This is extra text" + Environment.NewLine
        File.AppendAllText(path, appendText)

        ' Open the file to read from.
        Dim readText() As String = File.ReadAllLines(path)
        Dim s As String
        For Each s In readText
            Console.WriteLine(s)
        Next
    End Sub
End Class

Remarques

Si le fichier cible existe déjà, il est tronqué et remplacé.

Le comportement par défaut de la méthode WriteAllLines consiste à écrire des données à l’aide de l’encodage UTF-8 sans marque d’ordre d’octet (BOM). S’il est nécessaire d’inclure un identificateur UTF-8, tel qu’une marque d’ordre d’octet, au début d’un fichier, utilisez la surcharge de méthode WriteAllLines(String, String[], Encoding) avec l’encodage UTF8.

Étant donné un tableau de chaînes et un chemin d’accès de fichier, cette méthode ouvre le fichier spécifié, écrit le tableau de chaînes dans le fichier, puis ferme le fichier.

S’applique à