File.WriteAllLines Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Erstellt eine neue Datei, schreibt mindestens eine Zeichenfolge in die Datei und schließt dann die Datei.
Überlädt
WriteAllLines(String, IEnumerable<String>) |
Erstellt eine neue Datei, schreibt eine Auflistung von Zeichenfolgen in die Datei und schließt dann die Datei. |
WriteAllLines(String, String[]) |
Erstellt eine neue Datei, schreibt das angegebene Zeichenfolgenarray in die Datei und schließt die Datei dann. |
WriteAllLines(String, IEnumerable<String>, Encoding) |
Erstellt eine neue Datei unter Verwendung der angegebenen Codierung, schreibt eine Auflistung von Zeichenfolgen in die Datei und schließt dann die Datei. |
WriteAllLines(String, String[], Encoding) |
Erstellt eine neue Datei, schreibt das angegebene Zeichenfolgenarray unter Verwendung der angegebenen Codierung in die Datei und schließt dann die Datei. |
WriteAllLines(String, IEnumerable<String>)
- Quelle:
- File.cs
- Quelle:
- File.cs
- Quelle:
- File.cs
Erstellt eine neue Datei, schreibt eine Auflistung von Zeichenfolgen in die Datei und schließt dann die Datei.
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))
Parameter
- path
- String
Die Datei, in die geschrieben werden soll.
- contents
- IEnumerable<String>
Die Zeilen, die in die Datei geschrieben werden sollen.
Ausnahmen
.NET Framework- und .NET Core-Versionen älter als 2.1: path
ist eine Zeichenfolge ohne Länge, enthält nur Leerzeichen oder enthält mindestens ein ungültiges Zeichen, das von der GetInvalidPathChars() -Methode definiert ist.
Entweder path
oder contents
ist null
.
path
ist ungültig (er befindet sich z. B. auf einem nicht zugeordneten Laufwerk).
Beim Öffnen der Datei ist ein E/A-Fehler aufgetreten.
path
überschreitet die vom System definierte maximale Länge.
path
weist ein ungültiges Format auf.
Der Aufrufer verfügt nicht über die erforderliche Berechtigung.
path
hat eine schreibgeschützte Datei angegeben.
- oder -
path
hat eine schreibgeschützte Datei angegeben.
- oder -
Dieser Vorgang wird von der aktuellen Plattform nicht unterstützt.
- oder -
path
ist ein Verzeichnis.
- oder -
Der Aufrufer verfügt nicht über die erforderliche Berechtigung.
Beispiele
Im folgenden Beispiel werden ausgewählte Zeilen aus einer Beispieldatendatei in eine Datei geschrieben.
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
Hinweise
Das Standardverhalten der WriteAllLines(String, IEnumerable<String>) Methode besteht darin, Daten mithilfe der UTF-8-Codierung ohne Bytereihenfolgemarkierung (BOM) zu schreiben. Wenn ein UTF-8-Bezeichner, z. B. eine Bytereihenfolgenmarkierung, am Anfang einer Datei eingeschlossen werden muss, verwenden Sie die Methodenüberladung mit UTF8 der WriteAllLines(String, IEnumerable<String>, Encoding) Codierung.
Wenn die Zieldatei bereits vorhanden ist, wird sie abgeschnitten und überschrieben.
Sie können diese Methode verwenden, um den Inhalt für eine Auflistungsklasse zu erstellen, die einen IEnumerable<T> in ihrem Konstruktor übernimmt, z. B. eine List<T>- HashSet<T>oder eine SortedSet<T> -Klasse.
Gilt für:
WriteAllLines(String, String[])
- Quelle:
- File.cs
- Quelle:
- File.cs
- Quelle:
- File.cs
Erstellt eine neue Datei, schreibt das angegebene Zeichenfolgenarray in die Datei und schließt die Datei dann.
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())
Parameter
- path
- String
Die Datei, in die geschrieben werden soll.
- contents
- String[]
Das Zeichenfolgenarray, das in die Datei geschrieben werden soll.
Ausnahmen
.NET Framework- und .NET Core-Versionen älter als 2.1: path
ist eine Zeichenfolge der Länge null, enthält nur Leerzeichen oder enthält mindestens ein ungültiges Zeichen. Sie können Abfragen für ungültige Zeichen mithilfe der GetInvalidPathChars()-Methode ausführen.
Entweder path
oder contents
ist null
.
Der angegebene Pfad und/oder Dateiname überschreiten die vom System definierte maximale Länge.
Der angegebene Pfad ist ungültig (er befindet sich z. B. auf einem nicht zugeordneten Laufwerk).
Beim Öffnen der Datei ist ein E/A-Fehler aufgetreten.
path
hat eine schreibgeschützte Datei angegeben.
- oder -
path
hat eine schreibgeschützte Datei angegeben.
- oder -
Dieser Vorgang wird von der aktuellen Plattform nicht unterstützt.
- oder -
path
hat ein Verzeichnis angegeben.
- oder -
Der Aufrufer verfügt nicht über die erforderliche Berechtigung.
path
weist ein ungültiges Format auf.
Der Aufrufer verfügt nicht über die erforderliche Berechtigung.
Beispiele
Das folgende Codebeispiel veranschaulicht die Verwendung der WriteAllLines -Methode zum Schreiben von Text in eine Datei. In diesem Beispiel wird eine Datei erstellt, sofern sie noch nicht vorhanden ist, und ihr Text hinzugefügt.
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
Hinweise
Wenn die Zieldatei bereits vorhanden ist, wird sie abgeschnitten und überschrieben.
Das Standardverhalten der WriteAllLines Methode besteht darin, Daten mithilfe der UTF-8-Codierung ohne Bytereihenfolgemarkierung (BOM) zu schreiben. Wenn ein UTF-8-Bezeichner, z. B. eine Bytereihenfolgenmarkierung, am Anfang einer Datei eingeschlossen werden muss, verwenden Sie die Methodenüberladung mit UTF8 der WriteAllLines(String, String[], Encoding) Codierung.
Bei einem Zeichenfolgenarray und einem Dateipfad öffnet diese Methode die angegebene Datei, schreibt das Zeichenfolgenarray in die Datei und schließt dann die Datei.
Gilt für:
WriteAllLines(String, IEnumerable<String>, Encoding)
- Quelle:
- File.cs
- Quelle:
- File.cs
- Quelle:
- File.cs
Erstellt eine neue Datei unter Verwendung der angegebenen Codierung, schreibt eine Auflistung von Zeichenfolgen in die Datei und schließt dann die Datei.
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)
Parameter
- path
- String
Die Datei, in die geschrieben werden soll.
- contents
- IEnumerable<String>
Die Zeilen, die in die Datei geschrieben werden sollen.
- encoding
- Encoding
Die zu verwendende Zeichencodierung.
Ausnahmen
.NET Framework- und .NET Core-Versionen älter als 2.1: path
ist eine Zeichenfolge ohne Länge, enthält nur Leerzeichen oder enthält mindestens ein ungültiges Zeichen, das von der GetInvalidPathChars() -Methode definiert ist.
Entweder path
, contents
oder encoding
ist null
.
path
ist ungültig (er befindet sich z. B. auf einem nicht zugeordneten Laufwerk).
Beim Öffnen der Datei ist ein E/A-Fehler aufgetreten.
path
überschreitet die vom System definierte maximale Länge.
path
weist ein ungültiges Format auf.
Der Aufrufer verfügt nicht über die erforderliche Berechtigung.
path
hat eine schreibgeschützte Datei angegeben.
- oder -
path
hat eine schreibgeschützte Datei angegeben.
- oder -
Dieser Vorgang wird von der aktuellen Plattform nicht unterstützt.
- oder -
path
ist ein Verzeichnis.
- oder -
Der Aufrufer verfügt nicht über die erforderliche Berechtigung.
Hinweise
Wenn die Zieldatei bereits vorhanden ist, wird sie abgeschnitten und überschrieben.
Mit dieser Methode können Sie eine Datei erstellen, die Folgendes enthält:
Die Ergebnisse einer LINQ to Objects Abfrage für die Zeilen einer Datei, wie sie mit der ReadLines -Methode abgerufen werden.
Der Inhalt einer Auflistung, die eine IEnumerable<T> von Zeichenfolgen implementiert.
Gilt für:
WriteAllLines(String, String[], Encoding)
- Quelle:
- File.cs
- Quelle:
- File.cs
- Quelle:
- File.cs
Erstellt eine neue Datei, schreibt das angegebene Zeichenfolgenarray unter Verwendung der angegebenen Codierung in die Datei und schließt dann die Datei.
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)
Parameter
- path
- String
Die Datei, in die geschrieben werden soll.
- contents
- String[]
Das Zeichenfolgenarray, das in die Datei geschrieben werden soll.
- encoding
- Encoding
Ein Encoding-Objekt, das die Zeichencodierung darstellt, die auf das Zeichenfolgenarray angewendet wird.
Ausnahmen
.NET Framework- und .NET Core-Versionen älter als 2.1: path
ist eine Zeichenfolge der Länge null, enthält nur Leerzeichen oder enthält mindestens ein ungültiges Zeichen. Sie können Abfragen für ungültige Zeichen mithilfe der GetInvalidPathChars()-Methode ausführen.
Entweder path
oder contents
ist null
.
Der angegebene Pfad und/oder Dateiname überschreiten die vom System definierte maximale Länge.
Der angegebene Pfad ist ungültig (er befindet sich z. B. auf einem nicht zugeordneten Laufwerk).
Beim Öffnen der Datei ist ein E/A-Fehler aufgetreten.
path
hat eine schreibgeschützte Datei angegeben.
- oder -
path
hat eine schreibgeschützte Datei angegeben.
- oder -
Dieser Vorgang wird von der aktuellen Plattform nicht unterstützt.
- oder -
path
hat ein Verzeichnis angegeben.
- oder -
Der Aufrufer verfügt nicht über die erforderliche Berechtigung.
path
weist ein ungültiges Format auf.
Der Aufrufer verfügt nicht über die erforderliche Berechtigung.
Beispiele
Das folgende Codebeispiel veranschaulicht die Verwendung der WriteAllLines -Methode zum Schreiben von Text in eine Datei. In diesem Beispiel wird eine Datei erstellt, sofern sie noch nicht vorhanden ist, und ihr Text hinzugefügt.
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
Hinweise
Wenn die Zieldatei bereits vorhanden ist, wird sie abgeschnitten und überschrieben.
Bei Verwendung eines Zeichenfolgenarrays und eines Dateipfads öffnet diese Methode die angegebene Datei, schreibt das Zeichenfolgenarray mit der angegebenen Codierung in die Datei und schließt dann die Datei.
Gilt für:
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für