Francesco Geri

Il blog di Francesco Geri
posts - 56, comments - 57, trackbacks - 2

My Links

News



Anch'io metto nel mio blog cose che scrivo così, tanto per fare, tanto per condividere miei appunti, senza prendermi la briga di garantirne l'infallibilità, né l'assoluta correttezza, senza pretese e con grande umilté.

Quanti mi hanno visto dal 25/10/2007:
...dettagli

Che libro leggo in questo periodo?*

L'Affittacamere - Valerio Varesi
* L'immagine è presa da IBS (http://www.ibs.it), spero non me ne vogliano...

Archives

Post Categories

Altre

Blogs

Upload di un documento su MOSS07 con proprietà

Il codice seguente esegue l'upload di un documento su MOSS 07.
Le parti interessanti del codice proposto sono 2:

  1. Il codice imposta anche le proprietà del documento in un'unica operazione, quindi generando un'unica versione del documento (nel caso di versionamento attivato). Da notare che la stessa cosa non era possibile nel modello ad oggetti di SharePoint 2003.
  2. I valori delle proprietà sono impostati in base al nome visualizzato della proprietà stessa, per cui il codice si preoccupa di trovare il nome interno e convertirlo nel formato opportuno.

 

Imports Microsoft.SharePoint

 

Sub
UploadFile()
 
' Recupera l'oggetto SPSite
  Dim objSite As New SPSite("http://myServer/MyWebSite/"
)
  ' Recupera l'oggetto SPWeb
  Dim objWeb As
SPWeb = objSite.OpenWeb()
  ' Recupera l'oggetto SPDocumentLibrary
  Dim objDocLib As SPDocumentLibrary = objWeb.Lists("MyDocLib"
)
  ' Predispone una Hashtable per le proprietà del documento
  Dim properties As New
Hashtable
  ' Predispone una variabile per il nome della proprietà corrente
  Dim propertyName As
String
  ' Recupera il profilo della document library
  For i As Integer = 0 To
objDocLib.Fields.Count - 1
    Select Case
objDocLib.Fields(i).Title
      Case
"Proprietà 1"
        ' Converte il nome interno nella nome XML per la Hashtable delle proprietà
        propertyName = System.Xml.XmlConvert.DecodeName(objDocLib.Fields(i).InternalName)
        ' Aggiunge la coppia (nome XML, valore) per la proprietà
        properties.Add(propertyName, "Valore 1"
)
      Case
"Proprietà 2"
        ' Converte il nome interno nella nome XML per la Hashtable delle proprietà
        propertyName = System.Xml.XmlConvert.DecodeName(objDocLib.Fields(i).InternalName)
        ' Aggiunge la coppia (nome XML, valore) per la proprietà
        properties.Add(propertyName, "Valore 2"
)
      Case
"Proprietà 3"
        ' Converte il nome interno nella nome XML per la Hashtable delle proprietà
        propertyName = System.Xml.XmlConvert.DecodeName(objDocLib.Fields(i).InternalName)
        ' Aggiunge la coppia (nome XML, valore) per la proprietà
        properties.Add(propertyName, "Valore 3"
)
    End
Select
  Next
i
  ' Recupera l'oggetto SPFolder corrispondente alla root folder della document library
  Dim objFolder As
SPFolder = objDocLib.RootFolder
  ' Legge il documento
  Dim fStream As IO.FileStream = IO.File.OpenRead("c:\myFolder\myDoc.doc"
)
  Dim fContent(fStream.Length - 1) As
Byte
  fStream.Read(fContent, 0, fStream.Length)
  ' Aggiunge il documento con le proprietà
  objFolder.Files.Add("http://myServer/MyWebSite/MyDocLib/myDoc.doc", fContent, properties, True
)
  ' Chiude lo stream e ne fa la Dispose
  fStream.Close()
  fStream.Dispose()
  ' Esegue le Dispose degli oggetti relativi a Sharepoint
  objWeb.Dispose()
  objSite.Dispose()
End Sub

Print | posted on lunedì 22 ottobre 2007 23.11 | Filed Under [ MOSS07 Tips .Net ]

Feedback

No comments posted yet.

Post Comment

Title  
Name  
Email
Url
Comment   
Please add 6 and 8 and type the answer here:

Powered by: