File.WriteAllLines Metoda

Definice

Vytvoří nový soubor, zapíše do souboru jeden nebo více řetězců a pak soubor zavře.

Přetížení

WriteAllLines(String, IEnumerable<String>)

Vytvoří nový soubor, zapíše do souboru kolekci řetězců a pak soubor zavře.

WriteAllLines(String, String[])

Vytvoří nový soubor, zapíše do souboru zadané pole řetězců a pak soubor zavře.

WriteAllLines(String, IEnumerable<String>, Encoding)

Vytvoří nový soubor pomocí zadaného kódování, zapíše do souboru kolekci řetězců a pak soubor zavře.

WriteAllLines(String, String[], Encoding)

Vytvoří nový soubor, zapíše zadané pole řetězců do souboru pomocí zadaného kódování a pak soubor zavře.

WriteAllLines(String, IEnumerable<String>)

Zdroj:
File.cs
Zdroj:
File.cs
Zdroj:
File.cs

Vytvoří nový soubor, zapíše do souboru kolekci řetězců a pak soubor zavře.

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))

Parametry

path
String

Soubor, do který chcete zapisovat.

contents
IEnumerable<String>

Řádky, které se mají zapsat do souboru.

Výjimky

.NET Framework a .NET Core verze starší než 2.1: path je řetězec nulové délky, obsahuje pouze prázdné znaky nebo obsahuje jeden nebo více neplatných znaků definovaných metodou GetInvalidPathChars() .

Buď path nebo contents je null.

path je neplatný (například je na nenamapované jednotce).

Při otevírání souboru došlo ke vstupně-výstupní chybě.

path překračuje maximální délku definovanou systémem.

path je v neplatném formátu.

Volající nemá požadované oprávnění.

path zadal soubor, který je jen pro čtení.

-nebo-

path zadal soubor, který je skrytý.

-nebo-

Tato operace není na aktuální platformě podporovaná.

-nebo-

path je adresář.

-nebo-

Volající nemá požadované oprávnění.

Příklady

Následující příklad zapíše vybrané řádky z ukázkového datového souboru do souboru.

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

Poznámky

Výchozí chování WriteAllLines(String, IEnumerable<String>) metody je zápis dat pomocí kódování UTF-8 bez značky pořadí bajtů (BOM). Pokud je nutné na začátku souboru zahrnout identifikátor UTF-8, například značku pořadí bajtů, použijte WriteAllLines(String, IEnumerable<String>, Encoding) přetížení metody s kódováním UTF8 .

Pokud cílový soubor již existuje, je zkrácen a přepsán.

Tuto metodu můžete použít k vytvoření obsahu pro třídu kolekce, která přebírá objekt IEnumerable<T> ve svém konstruktoru List<T>, například , HashSet<T>nebo SortedSet<T> třídu.

Platí pro

WriteAllLines(String, String[])

Zdroj:
File.cs
Zdroj:
File.cs
Zdroj:
File.cs

Vytvoří nový soubor, zapíše do souboru zadané pole řetězců a pak soubor zavře.

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())

Parametry

path
String

Soubor, do který chcete zapisovat.

contents
String[]

Pole řetězců, které se má zapisovat do souboru.

Výjimky

Verze .NET Framework a .NET Core starší než 2.1: path je řetězec nulové délky, obsahuje pouze prázdné znaky nebo obsahuje jeden nebo více neplatných znaků. Pomocí metody se můžete dotazovat na neplatné znaky GetInvalidPathChars() .

Buď path nebo contents je null.

Zadaná cesta, název souboru nebo obojí překračují maximální délku definovanou systémem.

Zadaná cesta je neplatná (například je na nezmapované jednotce).

Při otevírání souboru došlo ke vstupně-výstupní chybě.

path zadal soubor, který je jen pro čtení.

-nebo-

path zadal soubor, který je skrytý.

-nebo-

Tato operace není na aktuální platformě podporovaná.

-nebo-

path zadal adresář.

-nebo-

Volající nemá požadované oprávnění.

path je v neplatném formátu.

Volající nemá požadované oprávnění.

Příklady

Následující příklad kódu ukazuje použití metody k zápisu WriteAllLines textu do souboru. V tomto příkladu se vytvoří soubor, pokud ještě neexistuje, a přidá se do něj text.

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

Poznámky

Pokud cílový soubor již existuje, je zkrácen a přepsán.

Výchozí chování WriteAllLines metody je zápis dat pomocí kódování UTF-8 bez značky pořadí bajtů (BOM). Pokud je nutné na začátku souboru zahrnout identifikátor UTF-8, například značku pořadí bajtů, použijte WriteAllLines(String, String[], Encoding) přetížení metody s kódováním UTF8 .

Vzhledem k poli řetězců a cestě k souboru tato metoda otevře zadaný soubor, zapíše pole řetězců do souboru a pak soubor zavře.

Platí pro

WriteAllLines(String, IEnumerable<String>, Encoding)

Zdroj:
File.cs
Zdroj:
File.cs
Zdroj:
File.cs

Vytvoří nový soubor pomocí zadaného kódování, zapíše do souboru kolekci řetězců a pak soubor zavře.

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)

Parametry

path
String

Soubor, do který chcete zapisovat.

contents
IEnumerable<String>

Řádky, které se mají zapsat do souboru.

encoding
Encoding

Kódování znaků, které se má použít.

Výjimky

.NET Framework a .NET Core verze starší než 2.1: path je řetězec nulové délky, obsahuje pouze prázdné znaky nebo obsahuje jeden nebo více neplatných znaků definovaných metodou GetInvalidPathChars() .

Buď path, contentsnebo encoding je null.

path je neplatný (například je na nenamapované jednotce).

Při otevírání souboru došlo ke vstupně-výstupní chybě.

path překračuje maximální délku definovanou systémem.

path je v neplatném formátu.

Volající nemá požadované oprávnění.

path zadal soubor, který je jen pro čtení.

-nebo-

path zadal soubor, který je skrytý.

-nebo-

Tato operace není na aktuální platformě podporovaná.

-nebo-

path je adresář.

-nebo-

Volající nemá požadované oprávnění.

Poznámky

Pokud cílový soubor již existuje, je zkrácen a přepsán.

Tuto metodu můžete použít k vytvoření souboru, který obsahuje následující:

Platí pro

WriteAllLines(String, String[], Encoding)

Zdroj:
File.cs
Zdroj:
File.cs
Zdroj:
File.cs

Vytvoří nový soubor, zapíše zadané pole řetězců do souboru pomocí zadaného kódování a poté soubor zavře.

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)

Parametry

path
String

Soubor, do který chcete zapisovat.

contents
String[]

Pole řetězců, které se má zapisovat do souboru.

encoding
Encoding

Objekt Encoding , který představuje kódování znaků použité na pole řetězců.

Výjimky

Verze .NET Framework a .NET Core starší než 2.1: path je řetězec nulové délky, obsahuje pouze prázdné znaky nebo obsahuje jeden nebo více neplatných znaků. Pomocí metody se můžete dotazovat na neplatné znaky GetInvalidPathChars() .

Buď path nebo contents je null.

Zadaná cesta, název souboru nebo obojí překračují maximální délku definovanou systémem.

Zadaná cesta je neplatná (například je na nezmapované jednotce).

Při otevírání souboru došlo ke vstupně-výstupní chybě.

path zadal soubor, který je jen pro čtení.

-nebo-

path zadal soubor, který je skrytý.

-nebo-

Tato operace není na aktuální platformě podporovaná.

-nebo-

path zadal adresář.

-nebo-

Volající nemá požadované oprávnění.

path je v neplatném formátu.

Volající nemá požadované oprávnění.

Příklady

Následující příklad kódu ukazuje použití metody k zápisu WriteAllLines textu do souboru. V tomto příkladu se vytvoří soubor, pokud ještě neexistuje, a přidá se do něj text.

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

Poznámky

Pokud cílový soubor již existuje, je zkrácen a přepsán.

Při zadání pole řetězců a cesty k souboru tato metoda otevře zadaný soubor, zapíše pole řetězců do souboru pomocí zadaného kódování a poté soubor zavře.

Platí pro