File.WriteAllLines Metoda
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vytvoří nový soubor, zapíše do souboru jeden nebo více ř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>, Encoding) |
Vytvoří nový soubor pomocí zadaného kódování, zapíše do souboru kolekci řetězců a pak soubor zavře. |
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. |
- 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 pak 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ý se má zapisovat.
- contents
- String[]
Řetězcové pole pro zápis 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 GetInvalidPathChars() můžete zadat dotaz na neplatné znaky.
Je null
path
nebo contents
.
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 nemapované jednotce).
Při otevírání souboru došlo k vstupně-výstupní chybě.
path
zadali soubor, který je jen pro čtení.
-nebo-
path
zadali skrytý soubor.
-nebo-
Tato operace není na aktuální platformě podporovaná.
-nebo-
path
zadali 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í WriteAllLines metoda k zápisu textu do souboru. V tomto příkladu se vytvoří soubor, pokud ještě neexistuje, a text se do něj přidá.
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, zkrátí se a přepíše.
Při zadání pole řetězců a cesty k souboru tato metoda otevře zadaný soubor, zapíše řetězcové pole do souboru pomocí zadaného kódování a pak soubor zavře.
Platí pro
.NET 9 a další verze
Produkt | Verze |
---|---|
.NET | Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 2.0, 2.1 |
- 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ý se má zapisovat.
- contents
- IEnumerable<String>
Řádky pro zápis do souboru.
- encoding
- Encoding
Kódování znaků, které se má použít.
Výjimky
Verze rozhraní .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ů definovaných metodou GetInvalidPathChars().
path
, contents
nebo encoding
je null
.
path
je neplatný (například je na nemapované jednotce).
Při otevírání souboru došlo k 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
zadali soubor, který je jen pro čtení.
-nebo-
path
zadali skrytý soubor.
-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, zkrátí se a přepíše.
Tuto metodu můžete použít k vytvoření souboru, který obsahuje následující:
Výsledky LINQ to Objects dotazu na řádky souboru, jak je získáno pomocí ReadLines metody.
Obsah kolekce, která implementuje IEnumerable<T> řetězců.
Platí pro
.NET 9 a další verze
Produkt | Verze |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 1.3, 1.4, 1.6, 2.0, 2.1 |
UWP | 10.0 |
- 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ý se má zapisovat.
- contents
- IEnumerable<String>
Řádky pro zápis do souboru.
Výjimky
Verze rozhraní .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ů definovaných metodou GetInvalidPathChars().
Je null
path
nebo contents
.
path
je neplatný (například je na nemapované jednotce).
Při otevírání souboru došlo k 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
zadali soubor, který je jen pro čtení.
-nebo-
path
zadali skrytý soubor.
-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í metody WriteAllLines(String, IEnumerable<String>) je zapsat data 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 přetížení metody WriteAllLines(String, IEnumerable<String>, Encoding) s kódováním UTF8.
Pokud cílový soubor již existuje, zkrátí se a přepíše.
Tuto metodu můžete použít k vytvoření obsahu pro třídu kolekce, která přebírá IEnumerable<T> v jeho konstruktoru, například List<T>, HashSet<T>nebo SortedSet<T> třídy.
Platí pro
.NET 9 a další verze
Produkt | Verze |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 1.3, 1.4, 1.6, 2.0, 2.1 |
UWP | 10.0 |
- 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ý se má zapisovat.
- contents
- String[]
Řetězcové pole pro zápis 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 GetInvalidPathChars() můžete zadat dotaz na neplatné znaky.
Je null
path
nebo contents
.
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 nemapované jednotce).
Při otevírání souboru došlo k vstupně-výstupní chybě.
path
zadali soubor, který je jen pro čtení.
-nebo-
path
zadali skrytý soubor.
-nebo-
Tato operace není na aktuální platformě podporovaná.
-nebo-
path
zadali 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í WriteAllLines metoda k zápisu textu do souboru. V tomto příkladu se vytvoří soubor, pokud ještě neexistuje, a text se do něj přidá.
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, zkrátí se a přepíše.
Výchozí chování metody WriteAllLines je zapsat data pomocí kódování UTF-8 bez znaku 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 přetížení metody WriteAllLines(String, String[], Encoding) s kódováním UTF8.
Při zadání pole řetězců a cesty k souboru tato metoda otevře zadaný soubor, zapíše do souboru pole řetězců a pak soubor zavře.
Platí pro
.NET 9 a další verze
Produkt | Verze |
---|---|
.NET | Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 2.0, 2.1 |
Zpětná vazba k produktu .NET
.NET je open source projekt. Vyberte odkaz pro poskytnutí zpětné vazby: