Это может быть решённая проблема или простой вопрос. Было бы здорово, если бы кто-то мог помочь мне в этом.
Я создаю своего рода проводник папок, используя Silverlight и WebServices. Я получаю необходимые данные для заполнения представления дерева папок из веб-службы и использую Silverlight для его отображения.
Вот моя проблема.
- 1 папка
- Файлы
- 2 Папка
- Файлы
- 3 Папка
- Файлы
- 4 папки ... и т. Д.
Я могу получить папки до уровня 2.
Я пытался получить папки рекурсивно. Не повезло, используя веб-сервис. Вот мой код:
public ObservableCollection<FolderDetails> FoldersInFolder(string UserName, string Password, string url, string FolderName)
{
Test(UserName, Password, url);
ObservableCollection<FolderDetails> Folders = new ObservableCollection<FolderDetails>();
string Temp;
for (int i = 0; i < FoldersOnly.Count; i++)
{
if (FoldersOnly[i].Contains(FolderName + "/"))
{
Temp = FoldersOnly[i].Substring(FoldersOnly[i].IndexOf("/") + 1);
if (Temp.Contains("/") == false)
{
// This is where I guess I need some help.
Folders.Add(new FolderDetails()
{
FolderWebUrl = url + "/" + FoldersOnly[i],
FolderUrl = FoldersOnly[i],
FolderName = Temp,
ChildFiles = FilesInFolder(UserName, Password, url, Temp),
ChildFolders = FoldersInFolder(UserName, Password, url, Temp)
});
}
}
else
{
continue;
}
}
return Folders;
}
Здесь FolderDetails - это класс, который предоставляет информацию о папке (имя папки, файлы и подпапки в папке). Имя пользователя и Пароль используются для аутентификации (с этим проблем нет).
FoldersOnly - это наблюдаемый сбор информации обо всех папках в каталоге.
url является базовым URL каталога.
Спасибо!