我在删除文件时遇到一些问题。目前我有一个存储目录内容的列表框。我能够从列表框中删除条目,但不能删除相应的文件,因此当程序重新启动时,该条目会重新显示,因为文件尚未删除。
这是我的代码:
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 :(得分:1)
你必须改变你的if条件。而不是
if (fileName.Equals(files))
{
File.Delete(".\\Notes\\"+files);
}
写
if (files.Contains(fileName))
{
File.Delete(".\\Notes\\"+fileName);
}
至少有两个问题:一次,您将string
(fileName
)与string[]
(files
)进行比较。另外,您通过将“。\ Notes \”与数组连接来构造错误的路径。