|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
10.12.2012, 16:23 | #1 |
Новичок
Джуниор
Регистрация: 10.12.2012
Сообщений: 1
|
Открыть выбранный в listView файл
Всем привет. Нужна помощь.
В форме windows я создал аналог проводника с помощью компонентов treeview и listview. В treeview отображается дерево папок, входящих в папку D:\\Data\, при раскрытии которого в listview отображаются входящие в эту папку папки и файлы. Но вот незадача - не могу открыть выбранный по щелчку мыши файл. Вот код программы и скрин: не понял, как код вставить, пусть будет так: Код HTML:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; using System.Diagnostics; namespace WindowsFormsApplication2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); PopulateTreeView(); } private void Form1_Load(object sender, EventArgs e) { } private void PopulateTreeView() { TreeNode rootNode; DirectoryInfo info = new DirectoryInfo(@"D:\Data\"); if (info.Exists) { rootNode = new TreeNode(info.Name); rootNode.Tag = info; GetDirectories(info.GetDirectories(), rootNode); treeView1.Nodes.Add(rootNode); } } private void GetDirectories(DirectoryInfo[] subDirs, TreeNode nodeToAddTo) { TreeNode aNode; DirectoryInfo[] subSubDirs; foreach (DirectoryInfo subDir in subDirs) { aNode = new TreeNode(subDir.Name, 0, 0); aNode.Tag = subDir; aNode.ImageKey = "folder"; subSubDirs = subDir.GetDirectories(); if (subSubDirs.Length != 0) { GetDirectories(subSubDirs, aNode); } nodeToAddTo.Nodes.Add(aNode); } } void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) { TreeNode newSelected = e.Node; listView1.Items.Clear(); DirectoryInfo nodeDirInfo = (DirectoryInfo)newSelected.Tag; ListViewItem.ListViewSubItem[] subItems; ListViewItem item = null; foreach (DirectoryInfo dir in nodeDirInfo.GetDirectories()) { item = new ListViewItem(dir.Name, 0); subItems = new ListViewItem.ListViewSubItem[] {new ListViewItem.ListViewSubItem(item, "Directory"), new ListViewItem.ListViewSubItem(item, dir.LastAccessTime.ToShortDateString())}; item.SubItems.AddRange(subItems); listView1.Items.Add(item); } foreach (FileInfo file in nodeDirInfo.GetFiles()) { item = new ListViewItem(file.Name, 1); subItems = new ListViewItem.ListViewSubItem[] { new ListViewItem.ListViewSubItem(item, "File"), new ListViewItem.ListViewSubItem(item, file.LastAccessTime.ToShortDateString())}; item.SubItems.AddRange(subItems); listView1.Items.Add(item); } listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize); } private void treeView1_NodeMouseClick_1(object sender, TreeNodeMouseClickEventArgs e) { this.treeView1.NodeMouseClick += new TreeNodeMouseClickEventHandler(this.treeView1_NodeMouseClick); } private void listView1_MouseClick(object sender, MouseEventArgs e) { //Process.Start(@"D:\\Data\dfg.docx"); //Process.Start(?????????); } private void listView1_ItemActivate(object sender, EventArgs e) { } } } private void listView1_MouseClick(object sender, MouseEventArgs e) { Process.Start(@"D:\\Data\dfg.docx") ; } Этот код работает. Но он открывает конкретный файл, а мне надо, чтобы любой открывался. Уже весь инет перелопатил - так и не нашел решение. Файлы будут обновляться постоянно и меняться и добавляться и удаляться, всё это будет отображаться в моём проводнике. Мне единственное надо - научиться эти файлы запускать. Вот |
10.12.2012, 18:04 | #2 |
Новичок
Джуниор
Регистрация: 13.05.2011
Сообщений: 2
|
Если я правильно понял, вам необходим путь файла, для вызова метода Process.Start. Можете попробовать хранить расположение файлов в поле класса, а имя файла получить из свойства SelectedItems.
Код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
выбор файла из combobox и добавление записи в выбранный файл | Кристинка89 | Общие вопросы Delphi | 3 | 18.04.2012 15:15 |
мини Файл Браузер, не открывается файл выбранный в ListView | Paul_man | WPF, UWP, WinRT, XAML | 0 | 01.03.2012 11:59 |
Нужно при двойном клике на строку listView открыть другую форму и передать даные в текстбоксы из txt | vitiok1 | C# (си шарп) | 5 | 17.02.2012 19:16 |
Открыть файл, разделить ячейку на 1000, сохранить файл, закрыть файл. Как? | Ник Харди | Microsoft Office Excel | 7 | 30.01.2012 18:47 |
Как по нажатию на Button открыть документ, выбранный в OpenDialog | Stranger333 | Общие вопросы Delphi | 4 | 12.11.2009 14:27 |