У меня есть проект класса библиотеки с пользовательским элементом управления на пользовательском элементе управления. У меня есть проводник, такой как проводник Windows. Я могу выбрать каталог и щелкнуть правой кнопкой мыши. У меня есть меню ContextMenuStrip с Edit Paste Copy Upload...
Когда я нажимаю «Загрузить», мне нужно получить из элемента (каталога), я нажал на все подкаталоги каталога и все файлы. Я пытался сделать это так:
private void menuStrip_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
if (e.ClickedItem.Text == "Upload")
{
AllFiles = System.IO.Directory.GetFiles(e.ClickedItem.Text, "*.*", System.IO.SearchOption.AllDirectories);
Bgw.RunWorkerAsync();
}
}
Но e.ClickedItem.Text - это не каталог, который я выбрал, а текст меню "Загрузить".
Мне нужно, чтобы AllFiles(String[]) содержал все подкаталоги и все файлы, чтобы я мог использовать их позже в form1. В общем, в form1 я хочу загрузить весь выбранный каталог, а также все подкаталоги и файлы на свой ftp.
Мне просто нужно найти, как получить все это.
Я использую правый клик для выбора каталога treeView. Это событие Mouse Up:
void treeView1_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
treeView1.SelectedNode = treeView1.GetNodeAt(e.X, e.Y);
if (treeView1.SelectedNode != null)
{
menuStrip.Show(treeView1, e.Location);
}
}
}
И событие After Select:
void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
AddDirectories(e.Node);
AddFiles(e.Node.FullPath.ToString());
statusBar1.Text = iDirectories.ToString() + " Folder(s) " + iFiles.ToString() + " File(s)";
}