Проблема со структурами заключается в том, что их конструктор не гарантированно работает.Например, при создании массива var array = new directories[10];
.Поэтому структуры не могут иметь инициализаторов и явных конструкторов без параметров.
В этом примере я использую ленивую инициализацию для обеспечения инициализации списка папок.
private struct directories
{
private List<string[]> _folder;
public List<string[]> Folder
{
get {
if (_folder == null) {
_folder = new List<string[]>();
}
return _folder;
}
}
}
Но в этом случае я быпросто используйте существующий класс DirectoryInfo из пространства имен System.IO
.Это делает это и многое другое для вас.Не изобретайте колесо заново.
DirectoryInfo rootDir = new DirectoryInfo(path1);
DirectoryInfo[] directories = rootDir.GetDirectories("*", SearchOption.AllDirectories);
Оба, GetDirectories
и GetFiles
имеют перегрузки, позволяющие вам указать шаблоны поиска и хотите ли вы возвращать подкаталоги.