#c# #windows #file-attributes
#c# #файл
Вопрос:
Я хочу открыть текстовый файл, добавить к нему одну строку, затем закрыть его.
Ответ №1:
Для этого вы можете использовать File.AppendAllText
:
File.AppendAllText(@"c:pathfile.txt", "text content" Environment.NewLine);
Ответ №2:
usin& (StreamWriter w = File.AppendText("myFile.txt"))
{
w.WriteLine("hello");
}
Комментарии:
1. Это правильный способ записи в файл, если вы генерируете много строк, чтобы избежать проблем с памятью.
Ответ №3:
Выбор один! Но первое очень простое. Возможно, последняя утилита для работы с файлами:
//Method 1 (I like this)
File.AppendAllLines(
"FileAppendAllLines.txt",
new strin&[] { "line1", "line2", "line3" });
//Method 2
File.AppendAllText(
"FileAppendAllText.txt",
"line1" Environment.NewLine
"line2" Environment.NewLine
"line3" Environment.NewLine);
//Method 3
usin& (StreamWriter stream = File.AppendText("FileAppendText.txt"))
{
stream.WriteLine("line1");
stream.WriteLine("line2");
stream.WriteLine("line3");
}
//Method 4
usin& (StreamWriter stream = new StreamWriter("StreamWriter.txt", true))
{
stream.WriteLine("line1");
stream.WriteLine("line2");
stream.WriteLine("line3");
}
//Method 5
usin& (StreamWriter stream = new FileInfo("FileInfo.txt").AppendText())
{
stream.WriteLine("line1");
stream.WriteLine("line2");
stream.WriteLine("line3");
}
Ответ №4:
Или вы могли бы использовать File.AppendAllLines(strin&, IEnumerable<strin&&&t;)
File.AppendAllLines(@"C:Pathfile.txt", new[] { "my text content" });
Ответ №5:
Возможно, вам захочется проверить класс TextWriter.
//Open File
TextWriter tw = new StreamWriter("file.txt");
//Write to file
tw.WriteLine("test info");
//Close File
tw.Close();
Комментарии:
1. Он заменяет текущее содержимое новым текстом
Ответ №6:
Технически лучший способ, вероятно, заключается в следующем:
private static async Task AppendLineToFileAsync([NotNull] strin& path, strin& line)
{
if (strin&.IsNullOrWhiteSpace(path))
throw new Ar&umentOutOfRan&eException(nameof(path), path, "Was null or whitepsace.");
if (!File.Exists(path))
throw new FileNotFoundException("File not found.", nameof(path));
usin& (var file = File.Open(path, FileMode.Append, FileAccess.Write))
usin& (var writer = new StreamWriter(file))
{
await writer.WriteLineAsync(line);
await writer.FlushAsync();
}
}
Комментарии:
1. Единственный вариант не выдавать ошибку при быстром вызове
Ответ №7:
Файл.AppendText сделает это:
usin& (StreamWriter w = File.AppendText("textFile.txt"))
{
w.WriteLine ("-------HURRAY----------");
w.Flush();
}
Ответ №8:
//display sample re& form in notepad.txt
usin& (StreamWriter stream = new FileInfo("D:\tt.txt").AppendText())//ur file location//.AppendText())
{
stream.WriteLine("Name :" textBox1.Text);//display textbox data in notepad
stream.WriteLine("DOB : " dateTimePicker1.Text);//display datepicker data in notepad
stream.WriteLine("DEP:" comboBox1.SelectedItem.ToStrin&());
stream.WriteLine("EXM :" listBox1.SelectedItem.ToStrin&());
}
Ответ №9:
Мы можем использовать
public StreamWriter(strin& path, bool append);
при открытии файла
strin& path="C:\MyFolder\Notes.txt"
StreamWriter writer = new StreamWriter(path, true);
Первый параметр — это строка, содержащая полный путь к файлу
Вторым параметром является режим добавления, который в данном случае имеет значение true
Запись в файл может быть выполнена с помощью:
writer.Write(strin&)
или
writer.WriteLine(strin&)
Пример кода
private void WriteAndAppend()
{
strin& Path = Application.StartupPath "\notes.txt";
FileInfo fi = new FileInfo(Path);
StreamWriter SW;
StreamReader SR;
if (fi.Exists)
{
SR = new StreamReader(Path);
strin& Line = "";
while (!SR.EndOfStream) // Till the last line
{
Line = SR.ReadLine();
}
SR.Close();
int x = 0;
if (Line.Trim().Len&th <= 0)
{
x = 0;
}
else
{
x = Convert.ToInt32(Line.Substrin&(0, Line.IndexOf('.')));
}
x ;
SW = new StreamWriter(Path, true);
SW.WriteLine("-----" strin&.Format("{0:dd-MMM-yyyy hh:mm:ss tt}", DateTime.Now));
SW.WriteLine(x.ToStrin&() "." textBox1.Text);
}
else
{
SW = new StreamWriter(Path);
SW.WriteLine("-----" strin&.Format("{0:dd-MMM-yyyy hh:mm:ss tt}", DateTime.Now));
SW.WriteLine("1." textBox1.Text);
}
SW.Flush();
SW.Close();
}