2017-08-14 162 views
-1

因此,我正在制作一个程序,将剪贴板中的内容输入到文本文件中,我计划稍后将此信息传输到AHK脚本中,但我希望在一个程序中这样做,所以如果可能的话它会附加到.ahk文件,但不是附加到最后一行,我需要它附加到返回之前的行,这是文件的最后一行。使用c#追加到文本文件中的倒数第二行

Send ::redeem N4E2vzCEp {enter} 
Sleep 1000 
return 

这是该文件的末尾,如果可能的话我想我的程序做这样的事情:

string pasted = Clipboard.GetText(); 
sw.WriteLine.SecondLastLine("Send ::redeem " + pasted + " {enter}"); 
sw.WriteLine.SecondLastLine("Sleep 1000"); //Fully aware that secondlastline is not a valid command 

但我不知道实际的编码正确的方法是什么。

当前代码:

private void paste_Click(object sender, EventArgs e) 
    { 
     string path = @"c:\users\john\desktop\auths.txt"; 
     using (StreamWriter sw = File.AppendText(path)) 
     { 
      string pasted = Clipboard.GetText(); 
      sw.WriteLine("Send ::redeem " + pasted + " {enter}"); 
      sw.WriteLine("Sleep 1000"); 
     } 

    } 
+3

SO不是代码写入服务;请使用迄今为止尝试的代码更新您的问题。 – Soviut

+0

你想在什么频率附加一行? – Ben

+0

我不确定我是否理解本,你是什么意思的频率?每按下一个按钮都会将剪贴板附加到文本文件 –

回答

1

你可以做的是阅读的所有行成List,然后插入在特定位置的新线和写线回文件。

List<string> lines = File.ReadAllLines("your file").ToList(); 
lines.Insert(lines.Count - 2, "new line"); 
File.WriteAllLines("your file", lines); 
+0

当我使用它时,它给出了: 类型为“System.IO”的未处理的异常。 IOException'发生在mscorlib.dll 附加信息:进程无法访问文件'c:\ users \ john \ desktop \ auths.txt',因为它正在被另一个进程使用。 –

+0

你在哪一行得到异常? – Ben

+0

25,这是:列表 lines = File.ReadAllLines(path).ToList(); 'path'是这样的:string path = @“c:\ users \ john \ desktop \ auths.txt”; –