SPFileCollection.Add 方法 (String, Byte[], SPUser, SPUser, DateTime, DateTime)
使用指定的 URL、 一个字节数组,包含文件的内容,用户对象表示用户的创建和上次修改文件,并在这样做时指定的DateTime值的集合中创建的文件。
命名空间: Microsoft.SharePoint
程序集: Microsoft.SharePoint(位于 Microsoft.SharePoint.dll 中)
语法
声明
Public Function Add ( _
urlOfFile As String, _
file As Byte(), _
createdBy As SPUser, _
modifiedBy As SPUser, _
timeCreated As DateTime, _
timeLastModified As DateTime _
) As SPFile
用法
Dim instance As SPFileCollection
Dim urlOfFile As String
Dim file As Byte()
Dim createdBy As SPUser
Dim modifiedBy As SPUser
Dim timeCreated As DateTime
Dim timeLastModified As DateTime
Dim returnValue As SPFile
returnValue = instance.Add(urlOfFile, _
file, createdBy, modifiedBy, timeCreated, _
timeLastModified)
public SPFile Add(
string urlOfFile,
byte[] file,
SPUser createdBy,
SPUser modifiedBy,
DateTime timeCreated,
DateTime timeLastModified
)
参数
urlOfFile
类型:System.String文件相对于网站的 URL。
file
类型:[]一个字节数组,包含的文件。
createdBy
类型:Microsoft.SharePoint.SPUser创建该文件的用户。
modifiedBy
类型:Microsoft.SharePoint.SPUser上次修改该文件的用户。
timeCreated
类型:System.DateTime日期和文件的创建的时间。若要设置创建时间,您必须设置此值通过与文件相关联的列表项的索引器和调用Update方法。
timeLastModified
类型:System.DateTime日期和上次修改该文件的时间。若要设置上次修改的时间,您必须设置此值通过与文件相关联的列表项的索引器和调用Update方法。
返回值
类型:Microsoft.SharePoint.SPFile
新添加的文件。
备注
此方法无法覆盖文件,如果文件已经存在。如果运行该命令的用户不是管理员网站用户组的成员, SPUser对象和DateTime值不适用。
此Add方法用于的网站文档库 ;但是,如果区域的文档库的使用它,则调用失败,出现"访问被拒绝"错误。如果您不包括的最后四个参数的Add方法中,该文件将添加到区域文档库中,但不是能更改的作者和文档的时间。
示例
下面的代码示例将复制每个文件在一个站点中的文档库的顶级文件夹到另一个网站的文档库。创建时间和上次修改值的原始库示例保留。
Dim site As SPSite = SPContext.Current.Site
Try
Dim srcFolder As SPFolder = site.AllWebs("MySourceWebSite").GetFolder("MySourceDocLib")
Dim destFiles As SPFileCollection = site.AllWebs("MyDestinationWebSite").GetFolder("MyDestinationDocLib").Files
Dim srcFile As SPFile
For Each srcFile In srcFolder.Files
Dim destURL As String = destFiles.Folder.Url + "/" + srcFile.Name
Dim binFile As Byte() = srcFile.OpenBinary()
Dim userAuthor As SPUser = srcFile.Author
Dim userModified As SPUser = srcFile.ModifiedBy
Dim created As System.DateTime = srcFile.TimeCreated
Dim modified As System.DateTime = srcFile.TimeLastModified
Dim newFile As SPFile = destFiles.Add(destURL, binFile, userAuthor, userModified, created, modified)
Dim fileItem As SPListItem = newFile.Item
fileItem("Created") = created
fileItem("Modified") = modified
fileItem.Update()
Next srcFile
Finally
site.Dispose()
End Try
SPSite oSiteCollection = SPContext.Current.Site;
SPFolder oFolder = oSiteCollection.AllWebs["SourceWebSite"].GetFolder("SourceDocLib");
SPFileCollection collFiles = oSiteCollection.AllWebs["DestWebSite"].GetFolder("DestDocLib").Files;
foreach (SPFile oFile in collFiles.Files)
{
string strDestUrl = collFiles.Folder.Url + "/" + srcFile.Name;
byte[] binFile = oFile.OpenBinary();
SPUser oUserAuthor = oFile.Author;
SPUser oUserModified = oFile.ModifiedBy;
System.DateTime dtCreated = oFile.TimeCreated;
System.DateTime dtModified = oFile.TimeLastModified;
SPFile oFileNew = collFiles.Add(strDestUrl, binFile, oUserAuthor, oUserModified, dtCreated, dtModified);
SPListItem oListItem = oFileNew.Item;
oListItem["Created"] = dtCreated;
oListItem["Modified"] = dtModified;
oListItem.Update();
}