File.AppendAllLines Метод

Определение

Добавляет строки в файл, а затем закрывает файл.

Перегрузки

Имя Описание
AppendAllLines(String, IEnumerable<String>)

Добавляет строки в файл, а затем закрывает файл. Если указанный файл не существует, этот метод создает файл, записывает указанные строки в файл, а затем закрывает файл.

AppendAllLines(String, IEnumerable<String>, Encoding)

Добавляет строки в файл с помощью указанной кодировки, а затем закрывает файл. Если указанный файл не существует, этот метод создает файл, записывает указанные строки в файл, а затем закрывает файл.

AppendAllLines(String, IEnumerable<String>)

Исходный код:
File.cs
Исходный код:
File.cs
Исходный код:
File.cs
Исходный код:
File.cs
Исходный код:
File.cs

Добавляет строки в файл, а затем закрывает файл. Если указанный файл не существует, этот метод создает файл, записывает указанные строки в файл, а затем закрывает файл.

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

Параметры

path
String

Файл, к который нужно добавить строки. Файл создается, если он еще не существует.

contents
IEnumerable<String>

Строки, добавляемые в файл.

Исключения

path — строка нулевой длины, содержит только пробелы или содержит еще один недопустимый символ, определенный методом GetInvalidPathChars() .

Либо path или естьnull.contents

path является недопустимым (например, каталог не существует или находится на несопоставленном диске).

Файл, path указанный не найден.

При открытии файла произошла ошибка ввода-вывода.

path превышает определенную системой максимальную длину.

path имеет недопустимый формат.

Вызывающий объект не имеет разрешения на запись в файл.

path указывает файл, доступный только для чтения.

–или–

Эта операция не поддерживается на текущей платформе.

–или–

path — это каталог.

Примеры

В следующем примере записываются выбранные строки из примера файла данных в файл, а затем добавляются дополнительные строки. Каталог с именем temp на диске C должен существовать для успешного завершения примера.

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

Комментарии

Метод создает файл, если он не существует, но он не создает новые каталоги. Поэтому значение path параметра должно содержать существующие каталоги.

Применяется к

AppendAllLines(String, IEnumerable<String>, Encoding)

Исходный код:
File.cs
Исходный код:
File.cs
Исходный код:
File.cs
Исходный код:
File.cs
Исходный код:
File.cs

Добавляет строки в файл с помощью указанной кодировки, а затем закрывает файл. Если указанный файл не существует, этот метод создает файл, записывает указанные строки в файл, а затем закрывает файл.

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

Параметры

path
String

Файл, к который нужно добавить строки. Файл создается, если он еще не существует.

contents
IEnumerable<String>

Строки, добавляемые в файл.

encoding
Encoding

Кодировка символов, используемая.

Исключения

path — строка нулевой длины, содержит только пробелы или содержит еще один недопустимый символ, определенный методом GetInvalidPathChars() .

Либо path, contentsлибо encoding есть null.

path является недопустимым (например, каталог не существует или находится на несопоставленном диске).

Файл, path указанный не найден.

При открытии файла произошла ошибка ввода-вывода.

path превышает определенную системой максимальную длину.

path имеет недопустимый формат.

Вызывающий объект не имеет требуемого разрешения.

path указывает файл, доступный только для чтения.

–или–

Эта операция не поддерживается на текущей платформе.

–или–

path — это каталог.

–или–

Вызывающий объект не имеет требуемого разрешения.

Комментарии

Метод создает файл, если он не существует, но он не создает новые каталоги. Поэтому значение path параметра должно содержать существующие каталоги.

Этот метод можно использовать для создания файла, содержащего следующее:

  • Результаты запроса LINQ to Objects в строках файла, полученные с помощью ReadLines метода.

  • Содержимое коллекции, реализующей IEnumerable<T> строки.

Применяется к