テキストファイルの指定した部分を削除する方法
現在、.NET Framework 4.5を使用し、Windowsフォームアプリケーションを作っています。
指定したテキストファイルを読み込み、行ごとにリストボックスに表示し、その表示された項目を選択(複数選択も可)した後にボタンを押すと、選択していた項目の部分をリストボックスに表示していたテキストファイルから削除するという処理を書いています。
テキストファイルから直接指定した部分を削除する様な機能は実装されていないと思うので、一度テキストファイルを読み込み、読み込んだデータからリストボックスで指定していた項目を除いたデータを別のファイルに出力し、その出力されたファイルを最初のテキストファイルに上書きする形で実装しようと思いました。
まず、テキストファイルを読み込み、そのデータをそのまま別のファイルに出力してもとのファイルに上書きすることはできました。
しかし、リストボックスで選択していた項目を覗いて出力する方法がわからないままです。
以下が書いたコードの一部になります。
StreamReader cReader = (new StreamReader(@"C:\", Encoding.GetEncoding("shift_jis")));
string stResult = string.Empty;
string tempFile = @"C:/temp.file"
string removeTxt = listBox2.SelectedItems.ToString();
while (cReader.Peek() >= 0)
{
string stBuffer = cReader.ReadLine();
StreamWriter writer = new StreamWriter(tempFile, false, Encoding.GetEncoding("shift-jis"));
writer.WriteLine(stBuffer);
writer.Close();
stResult += stBuffer + Environment.NewLine;<br>
}
cReader.Close();
File.Delete(tempFile);
上記のコードが、リストボックスで選択している箇所を削除する処理を除いた一連のコードです。
if(cReader.ReadLine() != listBox2.SelectedItems.ToString())
を使い、選択した項目と一致しなかった時にtempFileに書き込んでいこうとしましたが、うまくいきませんでした。
何かいい方法がお有りでしたら、ご教授お願いします。
※上記のコードは複数選択された項目ではなく単数選択の項目をテキストファイルから除く処理ですが、複数選択の処理は今回の質問が解決した後に取り組もうと思っています。
.NETのバージョンは4.5です