我编写此代码但不清楚文本文件:
File.WriteAllBytes(string.Concat(Server.MapPath("/"), "\\Engine\\TextFile1.txt"), new byte[0]);
sr = new StreamWriter(string.Concat(Server.MapPath("/"), "\\Engine\\TextFile1.txt"));
foreach (var item in txtHtmlCode.Content.Split('\n'))
{
sr.Write(item + "\n");
}
sr.Close();
我将此代码用于清除文件但不执行此操作:
StreamWriter sr = new StreamWriter(string.Concat(Server.MapPath("/"), "\\Engine\\TextFile1.txt"));
sr.Flush();
sr.Close();
我想要清除文本文件并在此文件中写入新字符串。我该怎么办? 如何覆盖文本文件?
答案 0 :(得分:6)
我只想使用System.IO.File.WriteAllText
String path = System.IO.Path.Combine(Server.MapPath("/"), "Engine", "TextFile1.txt");
System.IO.File.WriteAllText (path, txtHtmlCode.Content);
如果文件存在,则覆盖该文件,否则将创建该文件。
答案 1 :(得分:4)
如果您想重写文件:
File.WriteAllText(@"C:\MyFile.txt", "MyText");
如果您想编辑该文件,即更改行:
var target = File
.ReadLines(@"C:\MyFile.txt")
.Select(line => line) //TODO: put your actual edit here
.ToList(); // In order to prevent access problems
File.WriteAllLines(@"C:\MyFile.txt", target);
答案 2 :(得分:2)
无法从现有文件中删除内容(这是我所知道的所有文件系统中存在的限制,与.NET无关)。您将不得不再次创建该文件,覆盖旧文件。
答案 3 :(得分:2)
File.WriteAllText(filepath, String.Empty);
在这里你需要提供你的文件路径,我们将用空格替换所有内容,之后你可以每次在文件中写入新文本。
答案 4 :(得分:2)
要清除并写入文本文件,请使用此代码。
string path="Your file Path";
File.WriteAllText(path, String.Empty);
TextWriter tw = new StreamWriter(path, true);
tw.WriteLine("Your String!");
tw.Close();
要覆盖文本文件,请使用此代码。
string path="Your file Path";
var myFile = File.Create(path);
myFile.Close();
答案 5 :(得分:1)
IRandomAccessStream stream = await storageFile.OpenAsync(FileAccessMode.ReadWrite, StorageOpenOptions.AllowOnlyReaders);
stream.Size = 0; // clear the existing content
using (StreamWriter streamWriter = new StreamWriter(stream.AsStreamForWrite()))
{
foreach (...)
{
await streamWriter.WriteLineAsync(...)
}
await streamWriter.FlushAsync();
}
stream.Dispose();