C# 在spweb中下载列表时出错

C# 在spweb中下载列表时出错,c#,.net,sharepoint,C#,.net,Sharepoint,这是密码 private void downloadList(SPObjectData objectData) { using (SPWeb currentWeb = objectData.Web) { foreach (SPList list in currentWeb.Lists) { foreach (SPFolder oFolder in list.Folder

这是密码

private void downloadList(SPObjectData objectData)
    {
        using (SPWeb currentWeb = objectData.Web)
        {
            foreach (SPList list in currentWeb.Lists)
            {
                    foreach (SPFolder oFolder in list.Folders)
                    {
                        if (oFolder != null)
                        {
                            foreach (SPFile file in oFolder.files)
                            {
                                if (CreateDirectoryStructure(tbDirectory.Text, file.Url))
                                {
                                    var filepath = System.IO.Path.Combine(tbDirectory.Text, file.Url);
                                    byte[] binFile = file.OpenBinary();
                                    System.IO.FileStream fstream = System.IO.File.Create(filepath);
                                    fstream.Write(binFile, 0, binFile.Length);
                                    fstream.Close();
                                }
                            }
                        }
                }
            }
        }
    }
编译时出错

错误:无法将“Microsoft.SharePoint.SPListItem”类型的对象强制转换为“Microsoft.SharePoint.SPFolder”类型

“foreach”行出现错误(列表中文件夹的SPFolder)

我试图在列表中分配一个文件夹。文件夹分配到文件夹,但由于某种原因,它出现了上面提到的错误

我试图从列表中获取文件夹,但在阅读了下面给出的链接中文件夹和列表对象之间的差异后,我更改了代码,如下所述,干杯

试一试

更新:如果有问题,只需将其编入索引即可:

SPFileCollection collFiles = oFolder.Files;

        long lngTotalFileSize = 0;

        for (int intIndex = 0; intIndex < collFiles.Count; intIndex++)
        {
            lngTotalFileSize += collFiles[intIndex].Length;
        }
SPFileCollection collFiles=oFolder.Files;
长lngTotalFileSize=0;
对于(int intIndex=0;intIndex

HTH

谷歌没有发布任何消息你可能应该接受下面的答案,因为它修复了你原来的问题,然后用新问题创建了一个新问题。现在,下面的答案是正确的,不再符合你的问题。没错,但代码不对,所以我必须更改问题,如果有人使用它,不是吗et困惑,不管怎样,我选择了答案,并发布了正确的代码。多谢,我觉得今晚有点困了!:)呵呵,我其实是早上好了。:-)还有另一个错误,不知道为什么列表中的文件夹不能说话。文件夹:/我的第一个错误已经解决,现在是另一个问题:(
foreach (SPFile file in oFolder.Files)
SPFileCollection collFiles = oFolder.Files;

        long lngTotalFileSize = 0;

        for (int intIndex = 0; intIndex < collFiles.Count; intIndex++)
        {
            lngTotalFileSize += collFiles[intIndex].Length;
        }