File.WriteAllLines Yöntem

Tanım

Yeni bir dosya oluşturur, dosyaya bir veya daha fazla dize yazar ve dosyayı kapatır.

Aşırı Yüklemeler

WriteAllLines(String, IEnumerable<String>)

Yeni bir dosya oluşturur, dosyaya bir dize koleksiyonu yazar ve dosyayı kapatır.

WriteAllLines(String, String[])

Yeni bir dosya oluşturur, belirtilen dize dizisini dosyaya yazar ve dosyayı kapatır.

WriteAllLines(String, IEnumerable<String>, Encoding)

Belirtilen kodlamayı kullanarak yeni bir dosya oluşturur, dosyaya bir dize koleksiyonu yazar ve dosyayı kapatır.

WriteAllLines(String, String[], Encoding)

Yeni bir dosya oluşturur, belirtilen kodlamayı kullanarak belirtilen dize dizisini dosyaya yazar ve ardından dosyayı kapatır.

WriteAllLines(String, IEnumerable<String>)

Kaynak:
File.cs
Kaynak:
File.cs
Kaynak:
File.cs

Yeni bir dosya oluşturur, dosyaya bir dize koleksiyonu yazar ve dosyayı kapatır.

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

Parametreler

path
String

Yazacak dosya.

contents
IEnumerable<String>

Dosyaya yazacak satırlar.

Özel durumlar

2.1'den eski .NET Framework ve .NET Core sürümleri: path sıfır uzunlukta bir dizedir, yalnızca boşluk içerir veya yöntemi tarafından GetInvalidPathChars() tanımlanan bir veya daha fazla geçersiz karakter içerir.

veya pathcontents şeklindedir null.

path geçersizdir (örneğin, eşlenmemiş bir sürücüdedir).

Dosyayı açarken bir G/Ç hatası oluştu.

path sistem tanımlı maksimum uzunluğu aşıyor.

path geçersiz biçimde.

Çağıranın gerekli izni yok.

path salt okunur bir dosya belirtti.

-veya-

path gizli bir dosya belirtti.

-veya-

Bu işlem geçerli platformda desteklenmiyor.

-veya-

path bir dizindir.

-veya-

Çağıranın gerekli izni yok.

Örnekler

Aşağıdaki örnek, seçilen satırları örnek veri dosyasından bir dosyaya yazar.

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

Açıklamalar

Yönteminin WriteAllLines(String, IEnumerable<String>) varsayılan davranışı, bayt sipariş işareti (BOM) olmadan UTF-8 kodlaması kullanarak verileri yazmaktır. Bir dosyanın başında bayt sırası işareti gibi bir UTF-8 tanımlayıcısı eklemek gerekiyorsa, kodlama ile UTF8 yöntem aşırı yüklemesini WriteAllLines(String, IEnumerable<String>, Encoding) kullanın.

Hedef dosya zaten varsa, kesilir ve üzerine yazılır.

Oluşturucusunda , HashSet<T>veya SortedSet<T> sınıfı gibi List<T>bir IEnumerable<T> alan koleksiyon sınıfının içeriğini oluşturmak için bu yöntemi kullanabilirsiniz.

Şunlara uygulanır

WriteAllLines(String, String[])

Kaynak:
File.cs
Kaynak:
File.cs
Kaynak:
File.cs

Yeni bir dosya oluşturur, belirtilen dize dizisini dosyaya yazar ve dosyayı kapatır.

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

Parametreler

path
String

Yazacak dosya.

contents
String[]

Dosyaya yazacak dize dizisi.

Özel durumlar

2.1'den eski .NET Framework ve .NET Core sürümleri: path sıfır uzunlukta bir dizedir, yalnızca boşluk içerir veya bir veya daha fazla geçersiz karakter içerir. yöntemini kullanarak GetInvalidPathChars() geçersiz karakterleri sorgulayabilirsiniz.

veya pathcontents şeklindedir null.

Belirtilen yol, dosya adı veya her ikisi birden sistem tarafından tanımlanan en fazla uzunluğu aşıyor.

Belirtilen yol geçersiz (örneğin, eşlenmemiş bir sürücüde).

Dosyayı açarken bir G/Ç hatası oluştu.

path salt okunur bir dosya belirtti.

-veya-

path gizli bir dosya belirtti.

-veya-

Bu işlem geçerli platformda desteklenmiyor.

-veya-

path bir dizin belirtti.

-veya-

Çağıranın gerekli izni yok.

path geçersiz biçimde.

Çağıranın gerekli izni yok.

Örnekler

Aşağıdaki kod örneği, bir dosyaya metin yazmak için yönteminin WriteAllLines kullanımını gösterir. Bu örnekte, henüz yoksa bir dosya oluşturulur ve dosyaya metin eklenir.

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

Açıklamalar

Hedef dosya zaten varsa, kesilir ve üzerine yazılır.

Yönteminin WriteAllLines varsayılan davranışı, bayt sipariş işareti (BOM) olmadan UTF-8 kodlaması kullanarak verileri yazmaktır. Bir dosyanın başında bayt sırası işareti gibi bir UTF-8 tanımlayıcısı eklemek gerekiyorsa, kodlama ile UTF8 yöntem aşırı yüklemesini WriteAllLines(String, String[], Encoding) kullanın.

Bir dize dizisi ve dosya yolu verilip bu yöntem belirtilen dosyayı açar, dize dizisini dosyaya yazar ve dosyayı kapatır.

Şunlara uygulanır

WriteAllLines(String, IEnumerable<String>, Encoding)

Kaynak:
File.cs
Kaynak:
File.cs
Kaynak:
File.cs

Belirtilen kodlamayı kullanarak yeni bir dosya oluşturur, dosyaya bir dize koleksiyonu yazar ve dosyayı kapatır.

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)

Parametreler

path
String

Yazacak dosya.

contents
IEnumerable<String>

Dosyaya yazacak satırlar.

encoding
Encoding

Kullanılacak karakter kodlaması.

Özel durumlar

2.1'den eski .NET Framework ve .NET Core sürümleri: path sıfır uzunlukta bir dizedir, yalnızca boşluk içerir veya yöntemi tarafından GetInvalidPathChars() tanımlanan bir veya daha fazla geçersiz karakter içerir.

, pathcontentsveya encoding şeklindedirnull.

path geçersizdir (örneğin, eşlenmemiş bir sürücüdedir).

Dosyayı açarken bir G/Ç hatası oluştu.

path sistem tanımlı maksimum uzunluğu aşıyor.

path geçersiz biçimde.

Çağıranın gerekli izni yok.

path salt okunur bir dosya belirtti.

-veya-

path gizli bir dosya belirtti.

-veya-

Bu işlem geçerli platformda desteklenmiyor.

-veya-

path bir dizindir.

-veya-

Çağıranın gerekli izni yok.

Açıklamalar

Hedef dosya zaten varsa, kesilir ve üzerine yazılır.

Aşağıdakini içeren bir dosya oluşturmak için bu yöntemi kullanabilirsiniz:

Şunlara uygulanır

WriteAllLines(String, String[], Encoding)

Kaynak:
File.cs
Kaynak:
File.cs
Kaynak:
File.cs

Yeni bir dosya oluşturur, belirtilen dize dizisini belirtilen kodlamayı kullanarak dosyaya yazar ve ardından dosyayı kapatır.

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)

Parametreler

path
String

Yazacak dosya.

contents
String[]

Dosyaya yazacak dize dizisi.

encoding
Encoding

Encoding Dize dizisine uygulanan karakter kodlamasını temsil eden bir nesne.

Özel durumlar

2.1'den eski .NET Framework ve .NET Core sürümleri: path sıfır uzunlukta bir dizedir, yalnızca boşluk içerir veya bir veya daha fazla geçersiz karakter içerir. yöntemini kullanarak GetInvalidPathChars() geçersiz karakterleri sorgulayabilirsiniz.

veya pathcontents şeklindedir null.

Belirtilen yol, dosya adı veya her ikisi birden sistem tarafından tanımlanan en fazla uzunluğu aşıyor.

Belirtilen yol geçersiz (örneğin, eşlenmemiş bir sürücüde).

Dosyayı açarken bir G/Ç hatası oluştu.

path salt okunur bir dosya belirtti.

-veya-

path gizli bir dosya belirtti.

-veya-

Bu işlem geçerli platformda desteklenmiyor.

-veya-

path bir dizin belirtti.

-veya-

Çağıranın gerekli izni yok.

path geçersiz bir biçimde.

Çağıranın gerekli izni yok.

Örnekler

Aşağıdaki kod örneği, bir dosyaya metin yazmak için yönteminin WriteAllLines kullanımını gösterir. Bu örnekte, henüz yoksa bir dosya oluşturulur ve dosyaya metin eklenir.

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

Açıklamalar

Hedef dosya zaten varsa, kesilir ve üzerine yazılır.

Bir dize dizisi ve dosya yolu verüldüğünde, bu yöntem belirtilen dosyayı açar, belirtilen kodlamayı kullanarak dize dizisini dosyaya yazar ve sonra dosyayı kapatır.

Şunlara uygulanır