Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何删除txt文件中的第一行_C# - Fatal编程技术网

C# 如何删除txt文件中的第一行

C# 如何删除txt文件中的第一行,c#,C#,我是新来的 我想删除txt文件中的第一行。基本上,您需要将其复制到另一个文件-您不能“就地”删除(或插入)文件中的数据。例如,在.NET 4中,很容易: var lines = File.ReadLines("input.txt").Skip(1); File.WriteAllLines("output.txt", lines); 在旧版本的.NET中,这项工作要稍微多一些,至少如果您希望避免将整个文件加载到内存中,但仍然不会太难。如果您需要旧版本的代码(并说明是哪个版本),请告诉我 编辑:如

我是新来的


我想删除txt文件中的第一行。

基本上,您需要将其复制到另一个文件-您不能“就地”删除(或插入)文件中的数据。例如,在.NET 4中,很容易:

var lines = File.ReadLines("input.txt").Skip(1);
File.WriteAllLines("output.txt", lines);
在旧版本的.NET中,这项工作要稍微多一些,至少如果您希望避免将整个文件加载到内存中,但仍然不会太难。如果您需要旧版本的代码(并说明是哪个版本),请告诉我

编辑:如评论中所述,如果您愿意将整个文件加载到内存中,可以直接写回同一个文件:

// Note that ReadAllLines is eager, not lazy like ReadLines
var lines = File.ReadAllLines("file.txt").Skip(1);
File.WriteAllLines("file.txt", lines);

基本上,您需要将其复制到另一个文件—您不能“就地”删除(或插入)文件中的数据。例如,在.NET 4中,很容易:

var lines = File.ReadLines("input.txt").Skip(1);
File.WriteAllLines("output.txt", lines);
在旧版本的.NET中,这项工作要稍微多一些,至少如果您希望避免将整个文件加载到内存中,但仍然不会太难。如果您需要旧版本的代码(并说明是哪个版本),请告诉我

编辑:如评论中所述,如果您愿意将整个文件加载到内存中,可以直接写回同一个文件:

// Note that ReadAllLines is eager, not lazy like ReadLines
var lines = File.ReadAllLines("file.txt").Skip(1);
File.WriteAllLines("file.txt", lines);

从文本文件中删除第一行的步骤

System.IO.StreamReader file = new System.IO.StreamReader(filePath);
string data = file.ReadToEnd();
file.Close();
data = Regex.Replace(data, "<.*\n", "");
System.IO.StreamWriter file = new System.IO.StreamWriter(filePath, false);
file.Write(data);
file.Close();
System.IO.StreamReader文件=新的System.IO.StreamReader(文件路径);
字符串数据=file.ReadToEnd();
file.Close();

data=Regex.Replace(data,“从文本文件中删除第一行

System.IO.StreamReader file = new System.IO.StreamReader(filePath);
string data = file.ReadToEnd();
file.Close();
data = Regex.Replace(data, "<.*\n", "");
System.IO.StreamWriter file = new System.IO.StreamWriter(filePath, false);
file.Write(data);
file.Close();
System.IO.StreamReader文件=新的System.IO.StreamReader(文件路径);
字符串数据=file.ReadToEnd();
file.Close();

data=Regex.Replace(数据,也可以在一行中完成

File.WriteAllLines(origialFilePath,File.ReadAllLines(originalFilePath).Skip(1));

我假设您将originalFilePath作为函数的参数,

也可以在一行中完成

File.WriteAllLines(origialFilePath,File.ReadAllLines(originalFilePath).Skip(1));


我假设您将originalFilePath作为函数的参数

您不能写“就地”,但即使在您的示例中,您也可以通过重新打开该文件来回写同一个文件,因为您在开始写入之前已完成读取。在跳过我应该使用哪个引用时出错skiop@Arshiya:您添加了对System.Core的引用和System.Linq的using指令。@mydogisbox:Nope-我编写的代码不实际只需加载数据,直到它被要求加载为止-如果您尝试两次提供相同的文件名,它将使用LINQ的延迟执行,它将失败。@Arshiya Gm-我不会太担心无法提高Jon Skeet的投票率,因为他已经有太多的代表:)您不能写“就地”,但即使在您的示例中,您也可以通过重新打开该文件来回写同一个文件,因为您在开始写入之前已完成读取。在跳过我应该使用哪个引用时出错skiop@Arshiya:您添加了对System.Core的引用和System.Linq的using指令。@mydogisbox:Nope-我编写的代码不实际只需加载数据,直到它被要求加载为止-如果您尝试两次提供相同的文件名,它将使用LINQ的延迟执行,它将失败。@Arshiya Gm-我不会太担心无法提高Jon Skeet的投票率,因为他已经获得了太多的代表权:)仅供参考,没有“c sharp”这样的东西。该语言名为“C”。您需要扩展:是否允许复制,是否允许任何并发访问?仅供参考,您应该这样做。这将帮助你理解为什么人们对你的问题投反对票,以及网站的总体运作方式。到目前为止,你做了哪些尝试?如果你盯着它看的话,你的问题可能会有很多解决方案。@john,想知道那些
*.cs
文件的扩展名是从哪里来的?仅供参考,没有“c sharp”这样的东西。该语言名为“C”。您需要扩展:是否允许复制,是否允许任何并发访问?仅供参考,您应该这样做。这将帮助你理解为什么人们对你的问题投反对票,以及网站的总体运作方式。到目前为止,你做了哪些尝试?如果你盯着它看的话,你的问题可能会有很多解决方案。@john,想知道那些
*.cs
文件的扩展名是从哪里来的吗?我正在尝试上面的一个,但由于某种原因它不起作用。因此,对此做了一个小小的更改,您可以使用下表将正则表达式从Visual Studio早期版本中使用的版本转换为.NET Framework正则表达式。()我试过上面的一个,但不知什么原因它不起作用。因此,对此做了一个小小的更改,您可以使用下表将正则表达式从Visual Studio早期版本中使用的版本转换为.NET Framework正则表达式。()