Папка - проблема подпапки с использованием ObservableCollection - PullRequest
1 голос
/ 01 марта 2011

Это может быть решённая проблема или простой вопрос. Было бы здорово, если бы кто-то мог помочь мне в этом.

Я создаю своего рода проводник папок, используя 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 каталога.

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...