我不确定这个话题之前是否已被讨论,但我不确定要搜索它的确切字词。我应该使用什么方法/类?
该程序有3个按钮: 1)用于文件夹浏览,2)扫描所选文件夹内容,3)打开文件。当用户浏览所选文件夹时**(1)< strong>,用户单击扫描按钮从第一个文件扫描到最后一个可用文件并列出文本框(2)**并从该用户可以决定是否打开文件**(3) **。
以下是我到目前为止所做的事情(1号和3号):
//For browse.
private void browse2()
{
if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
{
this.txtDest.Text = folderBrowserDialog1.SelectedPath;
}
}
//For opening folder.
private void btnOpen_Click(object sender, EventArgs e)
{
try
{
Process.Start(txtDest.Text);
}
catch
{
MessageBox.Show("Please select one file/folder");
}
}
答案 0 :(得分:0)
我的示例是一个WPF应用程序,它将目录中的文件/文件夹添加到树视图中,但您应该得到一般的想法:
注意:代码是为培训练习编写的,因此只有3级深度,作为概念证明的事物
private void Window_Loaded(object sender, RoutedEventArgs e)
{
foreach (DriveInfo di in DriveInfo.GetDrives())
{
TreeViewItem drive = new TreeViewItem();
drive.Header = di.Name;
treeView1.Items.Add(drive);
DirectoryInfo folders = new DirectoryInfo(di.Name);
// The depth count means that it only goes 3 levels deep, to make it quick to load
GetFoldersAndFiles(drive, folders, 3);
}
}
private static void GetFoldersAndFiles(TreeViewItem parent, DirectoryInfo folders, int depth)
{
if ((depth > 0)
{
foreach (DirectoryInfo dirI in folders.GetDirectories())
{
TreeViewItem dir = new TreeViewItem();
dir.Header = dirI.Name;
parent.Items.Add(dir);
GetFoldersAndFiles(dir, dirI, depth - 1);
}
foreach (FileInfo fileI in folders.GetFiles())
{
TreeViewItem file = new TreeViewItem();
file.Header = fileI.Name;
parent.Items.Add(file);
}
}
}
答案 1 :(得分:0)
如果您尝试打开文件,可以直接使用Open File Dialog。
如果您需要显示目录的内容,可以使用Directory Info Class。