使用PowerShell建立一個文件庫
文件庫的操作和操作的列表是類似的,在這一章將會介紹如果建立一個文件庫,上傳一個檔案到文件庫中
建立一個文件庫,我們同樣需要使用SPListCollection中的Add()方法,
PS>$spWeb=Get-SPWeb-Identityhttp://SPServer
PS>$listTemplate=[Microsoft.SharePoint.SPListTemplateType]::DocumentLibrary
PS>$spWeb.Lists.Add("My Documents","My
Doc Library",$listTemplate)
使用PowerShell更新一個文件庫
我們可以通過GetList()方法查詢到我們需要的文件庫,
PS>$spDocumentLibrary=$spWeb.GetList("My
Documents")
下面我們來修改這個文件庫的一些屬性資訊,比如文件庫的說明和是否在快速啟動中顯示。
PS>$spDocumentLibrary.Description=“Description”
PS>$spDocumentLibrary.OnQuickLaunch=
"True"
PS>$spDocumentLibrary.Update()
在SharePoint文件庫中可能會存在檔案夾,使用檔案夾可以更有效管理文件庫中的檔案。如果我們要在文件庫中建立檔案夾,可以使用AddItem方法,就像我們在列表中建立一個清單項目一樣。但不同的是我們需要重載另外一個AddItem方法,也就是說我們需要在方法中添加
Microsoft.SharePoint.SPFileSystemObjectType,來聲明我們添加的是一個檔案或者是一個檔案夾。
PS>$spFolder=$spDocumentLibrary.AddItem(
>> "",[Microsoft.SharePoint.SPFileSystemObjectType]::Folder,"My New Folder"
>>)
PS>$spFolder.Update()
使用PowerShell上傳一個檔案到文件庫
上傳檔案到文件庫中,我們需要使用Microsoft.SharePoint.SPFlieCollection類中的Add方法,這個類表示一個檔案的集合。
在我們擷取檔案集合之前,還需要通過Microsoft.SharePoint.SPWeb類中的GetFolder()方法返回的Microsoft.SharePoint.SPFolder,我們要這個類型初始化一個物件變數。
PS>$spFolder=$spWeb.GetFolder("My
Documents")
此時我們就可以向這個檔案集合中添加檔案了。
PS>$spFileCollection=$spFolder.Files
在Microsoft.SharePoint.SPFileCollection類中提供了一個Add方法,用來向檔案集合中添加一個檔案,這是一個非常通用的方法,有21種重載的定義。我們將會應用的其中一種,我們需要一個檔案的絕對位址,檔案位元組數組,還有一個Bool類型的值,表示在有同名檔案時,是否要覆蓋。
我們需要先使用Get-ChildItem方法類擷取到檔案。然後可以通過使用System.IO.FileStream類中提供的放法OpenRead(),來擷取檔案的位元組數組。
PS>$file=Get-ChildItemC:/Documents/MyDoc.docx
PS>$spFileCollection.Add("My Documents/MyDoc.docx",$file.OpenRead(),$false)
當然我們也同時可以上傳多個文檔到SharePoint文件庫中。
PS>Get-ChildItemC:/Documents-filter“*.docx”|ForEach-Object{
>>$spFileCollection.Add(“MyDocuments/$($_.Name)”,$_.OpenRead(),$true)
>>}