有没有办法从sharepoint下载文件,编辑它并在应用程序中上传回来?

时间:2014-06-06 09:04:28

标签: c# visual-studio-2010 sharepoint sharepoint-2007

我正在开发一个app c#(winforms),可以从您的计算机打开一个xml文件,编辑它(删除节点,添加新节点并更改现有节点),当然还可以再次将它保存到您的计算机上。 / p>

将xml文件上传到我们网站中的sharepoint 2007库。 所以我想省去在PC上保存文件然后手动上传的麻烦。

有没有办法代替在本地打开文件,它可以从sharepoint库下载相同的文件并打开它进行编辑,然后将更改保存到库中的文件中?

使用Visual Studio Ultimate 2010,该应用程序正在使用.net 3.5

谢谢。

1 个答案:

答案 0 :(得分:0)

这里有M$ demo app可以下载/上传文件到SP2007。最重要的部分:

下载:

using (SPSite site = new SPSite(txtSite.Text)) 
            { 
                using (SPWeb web = site.OpenWeb()) 
                { 
                    SPFolder myLibrary = web.Folders[txtDocLib.Text]; 

                    foreach (SPFile file in myLibrary.Files) 
                    { 
                        if (file.Name == comboBox1.SelectedItem.ToString()) 
                        { 
                            byte[] bytes = file.OpenBinary(); 

                            try 
                            { 
                                FileStream fs = new FileStream(dialog.FileName, FileMode.Create, FileAccess.ReadWrite); 
                                BinaryWriter bw = new BinaryWriter(fs); 
                                bw.Write(bytes); 
                                bw.Close(); 
                                MessageBox.Show("File downloaded to: " + dialog.FileName); 
                            } 
                            catch (Exception ex) 
                            { 
                                MessageBox.Show(ex.Message); 
                            } 

                        }                             
                    } 
                } 
            }

上载:

using (SPSite oSite = new SPSite(txtSite.Text)) 
        { 
            using (SPWeb oWeb = oSite.OpenWeb()) 
            {                     
                SPFolder myLibrary = oWeb.Folders[txtDocLib.Text]; 

                // Prepare to upload 
                Boolean replaceExistingFiles = true; 
                String fileName = System.IO.Path.GetFileName(txtSelectedFile.Text); 
                FileStream fileStream = File.OpenRead(txtSelectedFile.Text); 

                // Upload document 
                SPFile spfile = myLibrary.Files.Add(fileName, fileStream, replaceExistingFiles); 

                // Commit  
                myLibrary.Update(); 
            } 
        }