2017-05-20 8 views
0

ListViewでリストされた文字列アイテムをクリックしてテキストファイルから行を削除しようとしていますが、エラーが発生しています。ListView ItemからLineを削除しようとするとエラーが発生する - C#

私が使用している方法は、Line<string> lines変数にTextFile行を格納し、ファイルを空にすることでTextFileを上書きし、Line<string> linesをファイルに保存し直すことです。

はラインコードを削除します。

private void lvNotes_ItemSelected(object sender, AdapterView.ItemClickEventArgs e) 
{ 
    //Where I want the Line to be deleted! 

    string toast = "Deleted: " + notesList.GetItemAtPosition(e.Position); 
    Toast.MakeText(this, toast, ToastLength.Long).Show(); 

    string path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal); 
    string filename = Path.Combine(path, "test.txt"); 

    List<string> lines = new List<string>(); 

    using (StreamReader streamReader = new StreamReader(filename)) 
    { 
     // 3 
     // Use while != null pattern for loop 
     string line; 
     while ((line = streamReader.ReadLine()) != null) 
     { 
      // 4 
      // Insert logic here. 
      // ... 
      // "line" is a line in the file. Add it to our List. 
      lines.Add(line); 
     } 

     using (StreamWriter swOvewrite = new StreamWriter(filename)) 
     { 
      File.WriteAllText(filename, ""); 
      swOvewrite.WriteLine(lines); 
      swOvewrite.Close(); 

      UpdateList(); 

     } 
    } 
} 

私は取得していますエラーを以下に示します。 error

答えて

1

あなたは読み取り用にファイルを開くことができないと同時に、それに書き込みます。あなたがする必要があるのは、最初に内容を読んで、読者を閉じて、ライターを作り、ファイルに物を書き戻すことです。

もう1つの方法は、まったく異なるテンポラリファイルに書き込み、元のファイルを一時ファイルに置き換えることです。

や読み出しと書き込みの両方のためのファイルを開きます。

FileStream s2 = new FileStream("path", FileMode.Open, FileAccess.ReadWrite, FileShare.None); 
+0

ああ、私は参照してください!できるだけ早く試してみます。 – CodePlague

+0

ファイルの読み込みと置き換え/上書きはどのくらい正確ですか? – CodePlague

関連する問題