У меня есть фрагмент кода, который будет проходить по каталогу и создавать из него модель данных. Например, если у меня есть структура каталогов:
c:\TestDir1
c:\TestDir1\Sub1\
c:\TestDir1\Sub1\File1.txt
c:\TestDir1\Sub1\File2.txt
c:\TestDir1\Sub1\SubSub1
c:\TestDir1\Sub1\SubSub1\File3.xlsx
c:\TestDir1\Sub1\SubSub1\SubDirX
c:\TestDir1\Sub1\SubSub1\SubDirX\File4.txt
c:\TestDir1\Sub1\SubSub1\SubDirX\File5.txt
c:\TestDir1\Sub1\SubSub1\SubDirX\File6.txt
Создает соответствующую модель данных с помощью следующего кода:
static void BeginIt()
{
DirectoryInfo diTop = new DirectoryInfo(@"c:\Misc\3) Projects\002) Document Manager\DirectoryReading\TestDir1");
string path = diTop.FullName;
MySubDir mySubDir = new MySubDir(path);
}
public class MySubDir
{
public ArrayList _dirs;
public ArrayList _files;
public MySubDir(string dirPath)
{
_dirs = new ArrayList();
_files = new ArrayList();
this.ProcessDirectory(dirPath);
}
private void ProcessDirectory(string dirPath)
{
// Process the list of files found in the directory.
string[] fileEntries = Directory.GetFiles(dirPath);
foreach (string fileName in fileEntries)
{
_files.Add(fileName);
}
// Recurse into subdirectories of this directory.
string[] subdirectoryEntries = Directory.GetDirectories(dirPath);
foreach (string subdirectory in subdirectoryEntries)
{
_dirs.Add(new MySubDir(subdirectory));
}
}
}
Вот мой вопрос. Когда я шаг за шагом перебираю код, он соответствующим образом строит модель данных. Когда я делаю AddWatch, я вижу объект, и структура каталогов построена правильно.
Когда я пытаюсь получить доступ к значению содержимого через Immediate Window, я получаю ошибки. Например, если я наберу следующее в ближайшем окне следующее
? mySubDir._dirs [0] ._ каталоги [0]
Я получаю ошибку.
Как получить значения этих подкаталогов? Я хотел бы иметь возможность доступа к именам каталогов и именам файлов элементов в этой модели теперь, когда она создана.
Спасибо