2016-04-09 8 views
0

ファイルの削除に問題があります。現在、私はディレクトリの内容を格納するリストボックスを持っています。リストボックスからエントリを削除できますが、対応するファイルは削除できません。そのため、プログラムが再起動されると、ファイルが削除されていないので、エントリが再び表示されます。ディレクトリからファイルを削除できません

これは私のコードです:

private void button3_Click(object sender, EventArgs e) 
{ 
    //removes selected item from listbox 
    foreach (int Index in listBox1.SelectedIndices.Cast<int>().Select(x => x).Reverse()) 
     listBox1.Items.RemoveAt(Index); 

    string[] files = Directory.GetFiles(".\\Notes\\"); 

    //Gets selected listbox item as string 
    string fileName = listBox1.GetItemText(listBox1.SelectedItem); 

    if (fileName.Equals(files)) 
    { // not deleting, yet! 
     File.Delete(".\\Notes\\"+ files); 
    } 

    MessageBox.Show("Note deleted!", "ModNote", 
    MessageBoxButtons.OK, MessageBoxIcon.Information); 
} 
+0

'string'と' string [] 'を比較しています。それは動作しません。 – germi

+0

また、 'foreach'文の後に' {} 'がありません。それはあなたが思うように行動していない可能性があります。 –

+0

2つの{}はオプションですが、残しておくとよいコードスタイルではありません。 – BHuelse

答えて

1

あなたは、あなたの場合は条件を変更する必要があります。一度のために、あなたはstring[]files)とstringfileName)を比較した。その代わり

if (fileName.Equals(files)) 
{ 
    File.Delete(".\\Notes\\"+files);  
} 

書き込み

if (files.Contains(fileName)) 
{ 
    File.Delete(".\\Notes\\"+fileName);  
} 

の少なくとも2つの問題があります。さらに、 "。\ Notes \"を配列に連結して不正なパスを作成していました。

関連する問題