C # Найти папки по пути и вывести его в поле со списком - PullRequest
0 голосов
/ 09 февраля 2012

Кто-нибудь знает, как найти папки по пути (например, C: / testfolder) и вывести все папки в comboBox, который начинается с ".". Поэтому, если папка в пути называется «.test», она будет отображаться в поле со списком. Однако, если он не начинается с ".", Он не будет отображаться.

У меня сейчас не очень много кода, но вот что у меня есть:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        ComboBox.Items.Add("Test");
        ComboBox.Items.Add("Test2");
    }

    private void CMDSwitch_Click(object sender, EventArgs e)
    {
        if (ComboBox.SelectedIndex == 0)
        {

        }
    }
}

Я также хотел бы знать, как искать файлы и / или папки, выбирать их и добавлять их в поле со списком.

Редактировать: Большое спасибо, ребята, я получил это с помощью

string path = @"D:\TestFolder";

foreach (string dir in Directory.GetDirectories(path, ".*"))
{
    ComboBox.Items.Add(dir);
}

Ответы [ 4 ]

3 голосов
/ 09 февраля 2012

Пространство имен System.IO содержит три прекрасных класса.Файлы, каталоги и путь.

Такие вещи, как, например, Directories.GetFiles.

Что касается просмотра файла или папки.Встроенные элементы управления в панели инструментов OpenFileDialog и OpenFolderDialog могут пригодиться.

Получите книги ac # и .net и прочитайте, но хорошее общее правило: если вы думаете, что оно уже должно быть,почти наверняка есть.

2 голосов
/ 09 февраля 2012

Попробуйте использовать Directory.GetDirectories () , чтобы получить список каталогов, соответствующих вашему конкретному шаблону.

Directory.GetDirectories(path, searchPattern);
1 голос
/ 09 февраля 2012

Посмотрите на классы DirectoryInfo и Directory, т.е. чтобы получить массив FileInfo:

var files = new DirectoryInfo(@"C:\testfolder").GetFiles();

Чтобы получить подмножество каталогов, вы можете использовать Linq, например. берите только те, чьи имена папок начинаются с ".":

var di = new DirectoryInfo(@"C:\testfolder");
var dirs = di.EnumerateDirectories()
             .Where(d => d.Name.StartsWith("."));
0 голосов
/ 09 февраля 2012
string path = YOUR_PATH;
foreach (string dir in System.IO.Directory.GetDirectories(path))
{
    if (new DirectoryInfo(dir).Name.StartsWith("."))
    {
        ComboBox.Items.Add(dir);
    }
}

Обратите внимание, что это не рекурсивно, поскольку вы не спрашивали об этом.

...