无法从 SharePoint 文件集合列表中删除文件

本文关键字:文件 列表 删除 集合 SharePoint | 更新日期: 2023-09-27 18:28:51

我正在开发一个函数,该函数将检查 SharePoint 中的用户文件集合中是否有任何超过一分钟的文件(这将被更改,并且仅将其用于测试(。 但是,当条件为真时,它会删除超过一分钟的文件,但我收到以下异常消息。

System.InvalidOperationException集合已修改。枚举操作可能无法执行。

  private static void check_for_deletion(PHT.OneDrive.Helpers.OneDriveHelper oneDrive, string user)
    {
        FileCollection files = oneDrive.GetOneDriveFilesByFolderName(user);
        foreach (var file in files)
        {
            DateTime creationDate = file.TimeCreated.ToLocalTime();
            DateTime currentTime = DateTime.Now;
            TimeSpan elapsedTime = currentTime.Subtract(creationDate);
            int fileAge = elapsedTime.Minutes;
            int maxTime = 1;

            if (fileAge > maxTime)
            {
                file.DeleteObject();
            }
        }
     }

无法从 SharePoint 文件集合列表中删除文件

您应该能够在同一个文件集合中完成它,只需向后循环:

for (int fileNum = files.Count-1; fileNum >= 0; fileNum--)
    {
        //Assign file within the loop
        var file = files[fileNum];
        DateTime creationDate = file.TimeCreated.ToLocalTime();
        DateTime currentTime = DateTime.Now;
        TimeSpan elapsedTime = currentTime.Subtract(creationDate);
        int fileAge = elapsedTime.Minutes;
        int maxTime = 1;

        if (fileAge > maxTime)
        {
            file.DeleteObject();
        }
    }
修改

foreach循环中的FileCollection files

完成搜索后,创建一个新FileCollection并将files的内容复制到此,然后循环访问新。