To add an item to a document library, use SPFileCollection.Add()

will man mit der powershell in einer wiki ein dokument hinzufügen, so kann man dies nicht Microsoft.SharePoint.SPListItem Add() erledigen, weil es sich bei der wiki ja um eine document library handelt (die wiki seiten sind nichts anderes als aspx dokumente!) – daher schlägt folgendes fehl:

# vars

$SiteName = “http://mosstest/”
$WebName = “/Wiki/”
$ListName = “Wiki Pages”

# connect to sharepoint and open the wiki list

$mossSite = new-object Microsoft.SharePoint.SPSite($SiteName);
$mossWeb = $MossSite.AllWebs[$WebName];
$mossList = $MossWeb.Lists[$ListName];

“Got List…”

# try to add a new item

$item = $mossList.Items.Add()
$item.Update();

Exception calling “Update” with “0” argument(s): “To add an item to a document library, use SPFileCollection.Add()”
At line:1 char:13
+ $item.Update( <<<< );

die fehlermeldung ist eigentlich eindeutig; wie macht man es nun richtig? so:

# vars

$SiteName = “http://mosstest/”
$WebName = “/Wiki/”
$ListName = “Wiki Pages”

# connect to sharepoint and open the wiki list

$mossSite = new-object Microsoft.SharePoint.SPSite($SiteName);
$mossWeb = $MossSite.AllWebs[$WebName];
$mossList = $MossWeb.Lists[$ListName];

“Got List…”

# try to add a new item

[byte[]]$mydata = “hipslu was here”.ToCharArray(); # dummydata
$newFile = $mossList.RootFolder.Files.Add(“newwikientry.aspx”, $mydata);

allerdings wird in diesem beispiel natürlich keine richtige wiki seite erstellt – für einen ernsthafen einsatz muss die variable $mydata einen entsprechend sinnvollen inhalt haben (oder man kopiert den wiki eintrag von woanders her)

One thought on “To add an item to a document library, use SPFileCollection.Add()

Comments are closed.