文件夹 - 使用ObservableCollection的子文件夹问题

时间:2011-02-28 23:39:45

标签: c# web-services silverlight-4.0

这可能是一个已解决的问题或一个简单的问题。如果有人可以帮我解决这个问题会很棒。

我正在使用Silverlight和WebServices创建一种文件夹资源管理器。我正在获取从Web服务填充文件夹树视图所需的数据,我正在使用Silverlight来显示它。

这是我的问题。

  • 1个文件夹
    • 文件
    • 2文件夹
      • 文件
      • 3文件夹
        • 文件
        • 4文件夹......等。

我能够获得直到第2级的文件夹。

我尝试递归获取文件夹。使用Web服务没有运气。这是我的代码:

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 是目录的基本网址。

谢谢!

0 个答案:

没有答案