2017-08-14 163 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」; –