小编Fri*_*net的帖子

使用C#访问OneDrive For Business(Office365) - 无法列出子文件夹

为了备份目的(因为用户很不小心删除了他们不应该做的事情)我正在尝试编写一些软件来将公司用户"One Drives"的内容下载到公司网络,以便我们可以备份它们,以防万一他们删除任何东西

我目前正在使用Microsoft.SharePoint.Client这样做.我也觉得OneDrive For Business与OneDrive的不同之处(它与Sharepoint的纠缠)相差甚远.

例如......如果我的OneDrive网址是 https://accountname-my.sharepoint.com/personal/firstname_lastname_mycompany_com/Documents/

我可以成功列出文档根目录中的所有文件夹,并下载Documents文件夹根目录中的所有文件.

这是列出文档中文件夹的示例.

public void Listfiles()
{
    var folders = ListFolders(dirPath, clientContext, web);
    // now do something with results contained in 'folders'
}

public List GetDocumentLibrary(string libraryName, ClientContext clientContext, Web web)
{
    var query = clientContext.LoadQuery(web.Lists.Where(p => p.Title == libraryName));
    clientContext.ExecuteQuery();
    return query.FirstOrDefault();
}

public List<Folder> ListFolders(string libraryName, ClientContext clientContext, Web web)
{
    var list = GetDocumentLibrary(libraryName, clientContext, web);
    var folders = list.RootFolder.Folders;
    clientContext.Load(folders);
    clientContext.ExecuteQuery();
    return folders.ToList();
}
Run Code Online (Sandbox Code Playgroud)

此代码适用于返回Documents文件夹中的文件夹列表,但是,我的问题是尝试列出其中一个文件夹的内容.

例如https://accountname-my.sharepoint.com/personal/firstname_lastname_mycompany_com/Documents/PurchaseRequests/

如果我尝试运行上面相同的代码,这次我会抛出以下异常.

An unhandled …
Run Code Online (Sandbox Code Playgroud)

c# synchronization office365 sharepoint-2013 onedrive

2
推荐指数
1
解决办法
4713
查看次数

C#枚举对象foreach

我有一个简化版本,我想在下面做.我有一个由SolarSystem类使用的类Planet.我想使用foreach循环为SolarSystem中的每个Planet编写orbitTimeInDays.

错误CS1579 foreach语句无法对"TestEnum.SolarSystem"类型的变量进行操作,因为"TestEnum.SolarSystem"不包含"GetEnumerator"的公共定义

问题是枚举,我已经阅读了几篇关于使对象可枚举的文章和问题,但我似乎无法弄清楚如何将它应用于SolarSystem,因此我可以检查它构造的每个星球.(最终它也将包含小行星等,所以它不仅仅是8个行星和冥王星.)

有人可以帮我理解如何枚举SolarSystem.

class Program
{
    static void Main(string[] args)
    {
        SolarSystem solarSystem = new SolarSystem();
        solarSystem.mercury.orbitTimeInDays = 88;
        solarSystem.venus.orbitTimeInDays = 225;
        // etc...

        foreach (Planet planet in solarSystem)
        {
            Console.WriteLine("Time taken to orbit sun (in days) : " + planet.orbitTimeInDays.ToString());
        }
    }
}

public class Planet 
{
    public double distanceFromEarth { get; set; }
    public int orbitTimeInDays { get; set; }
    // etc...

    public Planet() { }
}

public class SolarSystem 
{ 
    public Planet mercury { get; …
Run Code Online (Sandbox Code Playgroud)

c# foreach enumeration enumerate

0
推荐指数
1
解决办法
555
查看次数