1

我有一个ListBox在某个文件夹中加载文件以在选中时运行/打开。目前我有两种不同的方法:添加添加文件的单击事件和添加文件夹并递归添加所有文件的添加目录单击事件。

目前这是我的 2 个按钮点击事件:

private void btnAddfiles_Click(object sender, EventArgs e)
{
    GetFolderToAddFilesFrom();
}

private void btnAddDir_Click(object sender, EventArgs e)
{
    GetFolderToAddFilesFrom();
}

现在我想做的是用相同的方法处理这两个选项,即添加几个或单独的文件,还添加文件夹并递归添加此文件夹和子文件夹中的所有文件。

添加文件功能:

       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)
    { }
4

1 回答 1

3
// Somewhere in you form constructor
btnAddFiles.Click += new EventHandler(btnAdd_Click);
btnAddDir.Click += new EventHandler(btnAdd_Click);

// ...

private void btnAdd_Click(object sender, EventArgs e) {
    GetFolderToAddFilesFrom();
}
于 2013-05-26T17:00:37.763 回答