亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 csom 刪除共享點中的多個文件

如何使用 csom 刪除共享點中的多個文件

C#
夢里花落0921 2023-09-24 16:29:33
我正在從列表中的特定文件夾下載文件。一切正常。然后我老板讓我下載后刪除文件。這是我嘗試過的。            SecureString str = new SecureString();            string cnf = Util.Cipher(ConfigurationManager.AppSettings["cnf"].ToString());            foreach (char ch in cnf.ToCharArray())            {                str.AppendChar(ch);            }            string user = ConfigurationManager.AppSettings["user"].ToString();            SharePointOnlineCredentials credentials = new SharePointOnlineCredentials(user, str);            string siteUrl = ConfigurationManager.AppSettings["site_url"].ToString();            using (ClientContext ctx = new ClientContext(siteUrl))            {                ctx.Credentials = credentials;                string library = ConfigurationManager.AppSettings["sharepoint_library"].ToString();                List mylibrary = ctx.Web.Lists.GetByTitle(library);                FileCollection files = mylibrary.RootFolder.Folders.GetByUrl(sharepointFolder).Files;                ctx.Load(files);                ctx.ExecuteQuery();                foreach (Microsoft.SharePoint.Client.File file in files)                {                    FileInformation fileinfo = Microsoft.SharePoint.Client.File.OpenBinaryDirect(ctx, file.ServerRelativeUrl);                    ctx.ExecuteQuery();                    using (FileStream filestream = new FileStream(dir + "\\" + file.Name, FileMode.Create))                    {                        fileinfo.Stream.CopyTo(filestream);                    }                    file.DeleteObject();                    ctx.ExecuteQuery();                }            }這是我收到的錯誤。該集合已被修改。枚舉操作可能無法執行。PS 一切正常,直到我添加這行代碼。file.DeleteObject();
查看完整描述

2 回答

?
湖上湖

TA貢獻2003條經驗 獲得超2個贊

只需修改代碼片段如下:


using Microsoft.SharePoint.Client;

using System.IO;

using System.Linq;

using System.Security;


namespace CSOM

{

    class Program

    {

        static void Main(string[] args)

        {


            using (ClientContext ctx = new ClientContext("https://tenant.sharepoint.com/sites/dev"))

            {

                string password = "*****";

                string account = "[email protected]";

                var secret = new SecureString();

                foreach (char c in password)

                {

                    secret.AppendChar(c);

                }

                ctx.Credentials = new SharePointOnlineCredentials(account, secret);


                List mylibrary = ctx.Web.Lists.GetByTitle("Documents");

                FileCollection files = mylibrary.RootFolder.Folders.GetByUrl("/sites/dev/shared documents/folder1").Files;


                ctx.Load(files);

                ctx.ExecuteQuery();


                foreach (Microsoft.SharePoint.Client.File file in files)

                {

                    FileInformation fileinfo = Microsoft.SharePoint.Client.File.OpenBinaryDirect(ctx, file.ServerRelativeUrl);


                    ctx.ExecuteQuery();


                    using (FileStream filestream = new FileStream("D:" + "\\" + file.Name, FileMode.Create))

                    {

                        fileinfo.Stream.CopyTo(filestream);

                    }


                }

                files.ToList().ForEach(file => file.DeleteObject());

                ctx.ExecuteQuery();

            };


        }



    }

}

添加最后兩行以在下載后從文件夾中刪除文件,我已經測試過并且它在我這邊工作。


查看完整回答
反對 回復 2023-09-24
?
心有法竹

TA貢獻1866條經驗 獲得超5個贊

你應該使用

 File.Delete(dir + "\\" + file.Name);


查看完整回答
反對 回復 2023-09-24
  • 2 回答
  • 0 關注
  • 164 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號