2012-05-29 58 views
0

我有下面的代码在内存中创建一个XML文件,更新它,然后将其添加到窗体库。创建后访问文件

// Creates a new XML document in memory 
XmlDocument newCRF = new XmlDocument(); 

// Loads an existing XML file into that in-memory document 
newXMLdoc.Load("Template.xml"); 

// Write the XML file to a document library 
using (SPSite newSite = new SPSite("http://sharepoint/newsite")) 
{ 
    using (SPWeb newWeb = newSite.OpenWeb()) 
    { 
     SPList newLibrary = newWeb.Lists["Test Library"]; 
     byte[] xmlData = System.Text.Encoding.UTF8.GetBytes(newXMLdoc.OuterXml); 

     // Save file to form library 
     using (MemoryStream ms = new MemoryStream(xmlData)) 
     { 
      SPFile newFileInLibrary = newLibrary.RootFolder.Files.Add("Filename.xml", ms); 
     } 
    } 
} 

我怎样才能访问“newFileInLibrary”对象,以便我可以修改它的属性(如“创建者”)?

+0

检查FileInfo类 –

回答

0

您可以通过使用此代码获取SPListItem对象:

// Save file to form library 
    SPFile newFileInLibrary = null; 
    using (MemoryStream ms = new MemoryStream(xmlData)) 
    { 
     newFileInLibrary = newLibrary.RootFolder.Files.Add("Filename.xml", ms); 
    } 
    SPListItem fileItem = newFileInLibrary.Item; 
    DoSomethingWith(fileItem["Created"]); 

PS:你认为发布在http://sharepoint.stackexchange.com

+0

感谢您的答复。我从代码中的第5行获取以下内容:“名为'newFileInLibrary'的局部变量不能在此范围内声明,因为它会给'newFileInLibrary'赋予不同的含义,'newFileInLibrary'已用于'父级或当前' 我曾考虑将此内容发布到SharePoint网站,但我认为这是更多的语言问题,而不是特定于SharePoint的内容 –

+0

您是否注意到我删除了“newFileInLibrary”变量之前的类型'使用'块?事实上,我将变量作用于外部作用域(您的方法),但我将其分配给了使用块。 –