Delphi 将文件从本地复制到SharePoint服务器位置

Delphi 将文件从本地复制到SharePoint服务器位置,delphi,file,sharepoint,copy,Delphi,File,Sharepoint,Copy,现在在我的PC上,我可以使用资源管理器在SP服务器上打开一个位置(例如位置)。从那里我可以从我的C:\驱动器复制/粘贴一个文件 我需要以编程方式复制复制过程。FileCopy()不起作用-似乎是导致问题的http://位 如果不使用BLOB存储,则所有SharePoint文件都将作为BLOB对象存储在数据库中 当您使用资源管理器访问文件时,您正在使用windows服务,该服务正在从SharePoiont读取文件并将其呈现给您。通过这种方式,您可以在手动将它们从加载到SharePoint后立即进行

现在在我的PC上,我可以使用资源管理器在SP服务器上打开一个位置(例如位置)。从那里我可以从我的C:\驱动器复制/粘贴一个文件


我需要以编程方式复制复制过程。FileCopy()不起作用-似乎是导致问题的http://位

如果不使用BLOB存储,则所有SharePoint文件都将作为BLOB对象存储在数据库中

当您使用资源管理器访问文件时,您正在使用windows服务,该服务正在从SharePoiont读取文件并将其呈现给您。通过这种方式,您可以在手动将它们从加载到SharePoint后立即进行复制和粘贴

为了能够自动执行此操作,您应该使用下一个SP API代码实现此操作:

        using (SPSite site = new SPSite("http://testsite.dev"))
        {
            using (SPWeb web = site.OpenWeb())
            {
                using (FileStream fs = File.OpenRead(@"C:\Debug.txt"))
                {
                    byte[] buffer = new byte[fs.Length];
                    fs.Read(buffer, 0, (int) fs.Length);

                    SPList list = web.GetList("Lists/Test AAD");
                    SPFile f = list.RootFolder.Files.Add("/Shared Documents/"+Path.GetFileName(fs.Name), buffer);
                }
            }
        }
这将向从磁盘C读取的“共享文档”库中添加新的“Debug.txt”文件。要对每个文件执行此操作,只需循环遍历文件夹中的每个文件。您只能打开web一次,并在每次添加文件时执行循环

希望有帮助


Andrew

服务器是否允许WebDAV访问?如果是的话,也有适用于Delphi的WebDAV客户端,包括。

讽刺的是,我发现这个问题,因为我前几天刚开始使用SharePoint,我自己也在考虑完全相同的事情(除了我已经从常识上知道你不能为此做一个简单的FileCopy()),用.net做这件事是微不足道的。所以,C#或PowerShell。那对你有用吗?不,一定是德尔福。我没有时间开始学习更多的新东西!我已经在学习Python来教我的GCSE学生,重新学习Pascal来达到A-level,SharePoint来进行VLE开发,JavaScript来完成SP的东西!它在.net中几乎是一行程序。不确定是否有一个好的Delphi包装器。如果你能给我一个.net的东西,我至少可以开始看看?我对.net一无所知:)