Je suis en train de copier la structure du dossier d'une bibliothèque de documents à l'autre,Impossible de créer la hiérarchie SPFolder. .update() continue de lancer exception
Cela échoue toujours à l'exception:
Mise à jour: appel d'exception « Mise à jour » avec " 0 "argument (s):" Dieser Vorgang kann nur für eine Datei ausgeführt werden Bei "http://machine/CopyTest2/EUR/Germany" handel es sich um einen Ordner. "
traduction libre:
Mise à jour: Exception appelant "Mise à jour" avec l'argument "0" (s): "Cette action ne peut être invoqué pour un fichier." http://machine/CopyTest2/EUR/Germany "est un dossier. "
C'est le code que je suis actuellement en utilisant:
foreach ($Folder in $AllFolders) {
$ParentFolderURL = ""
$i = 1 #Set 1 so we ignore the first part of the url, which is the library name. we only want the folders
$FolderURL = $Folder.url.Split("/")
while ($i -lt ($FolderURL.count - 1)) {
$ParentFolderURL = "$ParentFolderURL/" + $FolderURL[$i]
$i++
}
# Targetfolder is now http://server/copytest1/EUR
$targetFolderUrl = "$($DestinationWebURL)/$($dList.Title)$($ParentFolderURL)"
#check if the folder exists by querying web.GetFolder($targetFolderUrl) and check if it is null or not
if (!($dWeb.GetFolder($targetFolderUrl)).Exists) {
$NewFolder = $dlist.Folders.Add($targetFolderUrl, [Microsoft.SharePoint.SPFileSystemObjectType]::Folder, $Folder.Name)
$NewFolder["Title"] = $Folder.Name
$NewFolder.Update()
}
else {
#If the folder already exists, retrieve the folder where the file will be created
$NewFolder = $dList.Folders | Where-Object {$_.name -eq $Folder.Name}
}
#...
}
Je suis assez sûr que la ligne défectueuse est $NewFolder = $dlist.Folders.Add($targetFolderUrl, [Microsoft.SharePoint.SPFileSystemObjectType]::Folder, $Folder.Name)
mais je ne peux pas comprendre ce que la valeur correcte pour l'URL relative devrait être.
Alternatives Je l'ai essayé, où une combinaison de urls relatives:
$NewFolder = $dlist.Folders.Add("/$($dList.Title)$($ParentFolderURL)", [Microsoft.SharePoint.SPFileSystemObjectType]::Folder, $Folder.Name)
$NewFolder = $dlist.Folders.Add($ParentFolderURL, [Microsoft.SharePoint.SPFileSystemObjectType]::Folder, $Folder.Name)
Mais aucun ne travail.