我有一个ListBox
加载文件内的某个文件夹运行/打开时检查。 目前我有2种不同的方法:添加点击事件谁添加文件和添加目录点击事件谁添加文件夹和递归添加所有文件。Openfiledialog和Folderbrowserdialog在相同的方法?
目前,这是我的2个按钮单击事件:
private void btnAddfiles_Click(object sender, EventArgs e)
{
GetFolderToAddFilesFrom();
}
private void btnAddDir_Click(object sender, EventArgs e)
{
GetFolderToAddFilesFrom();
}
现在我想要做的是处理这2个选项相同的方法,即还添加几个或孤独的文件,也可以添加文件夹,并递归添加
来自此文件夹和子文件夹的所有文件。
添加文件功能:
foreach (String file in openFileDialog1.FileNames)
{
System.IO.Stream stream;
try
{
if ((stream = openFileDialog1.OpenFile()) != null)
{
int numberOfFiles = openFileDialog1.SafeFileNames.Length;
using (stream)
{
}
}
}
catch (Exception ex)
{
MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message);
}
}
添加目录:
try
{
foreach (string file in Directory.EnumerateFiles(path, "*.*", SearchOption.AllDirectories))
{
yield return file;
}
}
catch (Exception)
{ }
您是否在寻找一个对话框,它可以处理这两种情况?如果不是只注册两个按钮到相同的事件处理程序,并检查发件人 – makc
这是尴尬的用户界面。也许你应该在标签中给用户留个小贴士:“你可以通过按住Shift键的同时单击鼠标或按Ctrl + A来选择多个文件。从资源管理器窗口拖放也会更容易。 –
我想要选择文件夹和递归添加所有文件,有时候很多文件 – user2214609