я создаю инструмент проводника в c # .. я использую ListView для исследования файлов
, но у меня возникает проблема при копировании элементов (файлов)
public ListView.SelectedListViewItemCollection copiedItems;
private void btnCopy_Click(object sender, EventArgs e)
{
copiedItems = listView1.SelectedItems;
infoLabel.Text = "Item(s) copied to clipboard.";
}
private void Paste()
{
if (copiedItems != null)
{
foreach (ListViewItem item in copiedItems)
{
if (File.Exists(item.ToolTipText))
{
if (MessageBox.Show(item.ToolTipText + "is already exists\r\nDo you want to overwrite it?"
, "Overwrite", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk) == DialogResult.OK)
{
File.Copy(item.ToolTipText, currAddress, true);
infoLabel.Text = "Item(s) Pasted.";
}
return;
}
File.Copy(item.ToolTipText, currAddress, false);
infoLabel.Text = "Item(s) Pasted.";
}
}
}
при изменениипапка, в которую я нахожусь (currAddress) .. вставка не работает, потому что
ListView.SelectedListViewItemCollection copiedItems
изменилось на ноль... вот мой код проводника
private void DirRecursive(string path)
{
DirectoryInfo dir = new DirectoryInfo(path);
currAddress = path;
txtAddress.Text = path;
_iconListManager.ClearLists();
listView1.Items.Clear();
foreach (DirectoryInfo folder in dir.GetDirectories())
{
if ((folder.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden)
continue;
ListViewItem item = new ListViewItem();
item.Text = folder.Name;
item.Tag = (object)folder.Parent;
item.ToolTipText = folder.FullName;
item.ImageIndex = _iconListManager.AddFolderIcon(folder.FullName);
listView1.Items.Add(item);
}
foreach (FileInfo file in dir.GetFiles())
{
if ((file.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden)
continue;
ListViewItem item = new ListViewItem();
item.Text = file.Name;
item.Tag = (object)file.Directory.Parent;
item.ToolTipText = file.FullName;
item.ImageIndex = _iconListManager.AddFileIcon(file.FullName);
item.SubItems.Add(CnvrtUnit(file.Length));
listView1.Items.Add(item);
}
Есть ли какое-либо объяснение, почему copiedItems изменилось на null и как я могу это исправить?
заранее спасибо:)