C#查找每个文件夹的文件

C#查找每个文件夹的文件,c#,C#,基本上,我尝试在指定路径中打开每个文件夹的文件。 比如说- 在指定路径中,我有一个名为“a”的文件夹,在该文件夹中有另一个名为“B1”“B2”“B3”的文件夹,等等,在这些文件夹中有另一个名为“C”的文件夹,每个“C”文件夹中有一个名为“D”的文件。 我试图将“B”文件夹放入组合框,并在选择文件夹打开“D”文件时 等等。 请帮我处理这件事 var tfs = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri(path

基本上,我尝试在指定路径中打开每个文件夹的文件。 比如说- 在指定路径中,我有一个名为“a”的文件夹,在该文件夹中有另一个名为“B1”“B2”“B3”的文件夹,等等,在这些文件夹中有另一个名为“C”的文件夹,每个“C”文件夹中有一个名为“D”的文件。 我试图将“B”文件夹放入组合框,并在选择文件夹打开“D”文件时

等等。 请帮我处理这件事

var tfs =
TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri(path));
var vcs = tfs.GetService<VersionControlServer>();
     private void PopulateTreeView()
    {
        var tfs =
            TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://tfs2012:8080/tfs/DefaultCollection_2010/"));
        var vcs = tfs.GetService<VersionControlServer>();
        var workspace = vcs.QueryWorkspaces(workspaceName, vcs.AuthorizedUser, Environment.MachineName)[0];
        _workspace = workspace;
        tvWksNavigator.Nodes.Clear();
            var info = new DirectoryInfo(workspace.Folders[10].LocalItem);
            if (info.Exists)
            {
                var rootNode = new TreeNode(info.Name) { Tag = info };
                TreeNode bNode;
                DirectoryInfo[] subSubDirs;
                foreach (var subDir in info.GetDirectories().Where(c => c.Name=="Media"))
                {
                    bNode = new TreeNode(subDir.Name, 0, 0);
                    bNode.Tag = subDir;
                    subSubDirs = subDir.GetDirectories();

                    if (subSubDirs.Length != 0)
                    {
                        GetDirectories(subSubDirs, bNode);
                    }
                    rootNode.Nodes.Add(bNode);            
                }
                tvWksNavigator.Nodes.Add(rootNode);
            }
    }

    private void GetDirectories(DirectoryInfo[] subDirs,
        TreeNode nodeToAddTo)
    {
        TreeNode aNode;
        DirectoryInfo[] subSubDirs;
        foreach (var 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);
        }
    }
var-tfs=
tfstreamprojectcollectionfactory.GetTeamProjectCollection(新Uri(路径));
var vcs=tfs.GetService();
私有void PopulateTreeView()
{
var tfs=
TfsTeamProjectCollectionFactory.GetTeamProjectCollection(新Uri(“http://tfs2012:8080/tfs/DefaultCollection_2010/"));
var vcs=tfs.GetService();
var workspace=vcs.queryworkspace(workspaceName,vcs.AuthorizedUser,Environment.MachineName)[0];
_工作空间=工作空间;
tvWksNavigator.Nodes.Clear();
var info=new DirectoryInfo(workspace.Folders[10].LocalItem);
如果(信息存在)
{
var rootNode=newtreenode(info.Name){Tag=info};
树状bNode;
DirectoryInfo[]子目录;
foreach(info.GetDirectories()中的var subDir,其中(c=>c.Name==“Media”))
{
bNode=新树节点(子节点名称,0,0);
bNode.Tag=subDir;
subSubDirs=subDir.GetDirectories();
if(subSubDirs.Length!=0)
{
GetDirectories(subSubDirs,bNode);
}
rootNode.Nodes.Add(bNode);
}
tvWksNavigator.Nodes.Add(rootNode);
}
}
私有void GetDirectories(DirectoryInfo[]子目录,
TreeNode nodeToAddTo)
{
树状阳极;
DirectoryInfo[]子目录;
foreach(变量subDir在subDir中)
{
阳极=新的树节点(子节点名称,0,0);
阳极.Tag=subDir;
aNode.ImageKey=“文件夹”;
subSubDirs=subDir.GetDirectories();
if(subSubDirs.Length!=0)
{
获取目录(子目录、阳极);
}
nodeToAddTo.Nodes.Add(阳极);
}
}

以下是一个可以帮助您继续的示例。首先,用文件夹
A
中的文件夹填充组合框:

private void FillComboBox()
{
    foreach(string dir in Directory.GetDirectories(@"C:\Temp\A"))
    {
        DirectoryInfo info = new DirectoryInfo(dir);
        //foldersCB is the Name of the ComboBox
        foldersCB.Items.Add(info);
    }
}
当从组合框中选择另一个文件夹时,您需要一个事件,我们将使用SelectedIndexChanged事件:

private void foldersCB_SelectedIndexChanged(object sender, EventArgs e)
{
    string selectedItem = foldersCB.SelectedItem.ToString();
    string filePath = GetFileFromFolder(selectedItem);
    //open the file using 'filePath'
}
GetFileFromFolder()
是一种方法,它只需获取与以
D.txt
结尾的路径匹配的第一个文件名:

private string GetFileFromFolder(string path)
{
    string fileName = Directory.GetFiles(path, "*D.txt", SearchOption.AllDirectories).FirstOrDefault();
    return fileName;
}

请注意,这只是一个例子,让你去,而不是一个完整的解决方案!例如,如果需要检查文件是否确实位于所选文件夹的子文件夹中,则需要自己构建额外的验证。希望这能有所帮助。

我制作了一个树状视图,但我无法确定每个文件夹的具体位置。是的,请显示您目前拥有的内容。你也知道文件夹的结构吗?会有B4吗?树可以扩展到C以外的目录吗?这将始终是文件夹结构,是的,树可以扩展到C以外的目录,它将始终命名为“C”。
private string GetFileFromFolder(string path)
{
    string fileName = Directory.GetFiles(path, "*D.txt", SearchOption.AllDirectories).FirstOrDefault();
    return fileName;
}