2010-10-27 58 views
0

您能否在此帮我... 我想通过应用程序(c# - .Net2005)创建一个文本文件,并且需要为每次成功的事务更新它...我创建的文本文件,也updations成功,但新行被添加为最后一行...但我想新增加的行应该是文本文件中的TOPMOST行...你能告诉我我怎么能在c#中执行此操作。如何在c#中的exise文本文件顶部添加一行#

+2

这将是一个代价高昂的操作,需要为每一个插入文件的完全重写。你确定你不能忍受添加到文件底部的更加标准的行为吗? – spender 2010-10-27 11:57:00

回答

2

如果是在线更新,并在文件的开头只有一条线留出空间,并使用

FileStream.write(buffer, 0, space_reserved_for_line); 
//be aware that this will overwrite what has been written there 

如果你想保持某种日志文件,写写信给这个位置行到一个新的文件,并appen其他文件的其余部分。这非常昂贵(performancewise)。除非你有很好的理由,否则你很可能不想这样做。

没有可接受的方式来编写日志文件,其中最上面的条目是最近的条目。

心连心

马里奥

+0

感谢guies..for你的更新... 现在我计划不写一条新的线作为最顶端的线,因为我已经将几个30-40 MB的文件隐藏到数据库中......它会杀死应用程序性能... thx – Avinash 2010-10-27 12:16:32

2
string topLine = "...."; 
System.IO.File.WriteAllText("filename.blah", 
           topLine + System.Environment.NewLine + 
            System.IO.File.ReadAllText("filename.blah")); 

我个人认为这个要求应该受到质疑。

+0

Ouuuuuuuuuuuch!想象一下,在一个大文本文件中每秒执行几次这样的操作。它会杀死你的文件系统。 – spender 2010-10-27 11:59:10

+0

是真的,我同意你的预订 – 2010-10-27 12:01:21

+0

是的,但值得一提的是这个警告。 – spender 2010-10-27 12:03:15

相关问题