【发布时间】:2018-01-11 13:50:21
【问题描述】:
我正在制作一个供个人使用的应用程序,它将组织 .png 文件,并允许我通过应用程序(通过 ListView)从目录中远程删除它们。
我有一个 sn-p 会从 ListView 中删除文件,但不会从实际文件目录中删除。当我单击删除时,我希望能够同时执行这两项操作。
private void deleteToolStripMenuItem1_Click(object sender, EventArgs e)
{
if (MessageBox.Show("This will delete the file from the folder. Are you sure?", "Warning", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Warning) == DialogResult.Yes)
for (int i = fileDisplayListView.SelectedItems.Count - 1; i >= 0; i--)
{
ListViewItem item = fileDisplayListView.SelectedItems[i];
fileDisplayListView.Items[item.Index].Remove();
File.Delete(fbd.SelectedPath + fileDisplayListView.Items.ToString());
}
}
附加 sn-p 了解更多信息..
private void openToolStripButton_Click(object sender, EventArgs e)
{
fbd.ShowDialog();
DirectoryInfo di = new DirectoryInfo(fbd.SelectedPath);
directoryPath.Text = "Directory: " + fbd.SelectedPath;
FileInfo[] Files =
di.GetFiles("*.PNG*", SearchOption.AllDirectories);
if (Files.Length == 0)
MessageBox.Show("No .png files found in directory...", "Notification", MessageBoxButtons.OK, MessageBoxIcon.Question);
fileDisplayListView.Items.Clear();
foreach (FileInfo f in Files)
{
ListViewItem item = new ListViewItem(f.Name);
this.fileDisplayListView.Items.Add(f.Name);
}
this.fileDisplayListView.View = View.Details;
this.fileDisplayListView.Refresh();
}
它的最后一部分,File.Delete(fbd.SelectedPath + fileDisplayListView.Items.ToString());
不起作用。请帮忙!
【问题讨论】:
-
我猜你应该有
File.Delete(fbd.SelectedPath + fileDisplayListView.Items.ToString());而不是File.Delete(Path.Combine(fbd.SelectedPath, item.Text)); -
使用调试器可以创造奇迹。您是否正在捕获选定的文件,它是 FilePath..?
-
@Kedrzu 我已经尝试过了,但它不起作用。 MethodMan 我在最终字符串之间放置了 MessageBox() 检查器,并且文件路径似乎准确。这似乎是一个非常简单的解决方案,但它一直在输出
FILE_DIRECTORYSystem.Windows.Forms.ListView+ListViewItemCollection
标签: c# .net winforms visual-studio listview