I want to copy an entire network directory to SharePoint online and I all I can seem to capture so far are the main folders and files in the directory. Any sub-folders or files withing the main folders are not carrying over as intended (The main folders are empty). My code is below and any assistance is greatly appreciated.
#Upload file
Function ImportFiles()
{
#Get name of folder
$NewDirectory = Split-Path $Directory -Leaf
#upload folder to sharepoint
$UploadNewDirectory = $List.RootFolder.Folders.Add($NewDirectory)
$Context.Load($UploadNewDirectory)
$Context.ExecuteQuery()
$FoldersInDirectory = Get-ChildItem $Directory
#upload sub-folder to sharepoint
Foreach ($Item in $FoldersInDirectory)
{
if($Item | ? {$_.PsIsContainer -eq $true})
{
$Folder = $Item
$UploadFoldersInDirectory = $UploadNewDirectory.Folders.Add($Folder)
$Context.Load($UploadFoldersInDirectory)
$Context.ExecuteQuery()
}
elseif($Item | ? {$_.PsIsContainer -eq $false})
{
$File = $Item
$FileStream = New-Object IO.FileStream($File.FullName,[System.IO.FileMode]::Open)
$FileCreationInfo = New-Object Microsoft.SharePoint.Client.FileCreationInformation
$FileCreationInfo.Overwrite = $true
$FileCreationInfo.ContentStream = $FileStream
$FileCreationInfo.URL = $File
$Upload = $UploadNewDirectory.Files.Add($FileCreationInfo)
$Context.Load($Upload)
$Context.ExecuteQuery()
}
else
{
recurse ImportFiles
}
}
} # end function ImportFiles
ImportFiles