PowerShell read all files from folder and subfolder

In this PowerShell tutorial, we will see how to read all files from folders and subfolders in PowerShell.

These days all the clients are looking for migrating their data from the local environment to SharePoint/Office 365 for better collaboration.

As part of this migration process for better progress and quick migration, we need to implement some automation process. The best way(s) to migrate data from local folders/drives to SharePoint or Office 365 is:

As discussed above I would like to discuss the first approach PowerShell scripting. To read all the files from the local drive/folder we need to make use of PowerShell recursive function.

PowerShell read all files from folders and subfolders

Here I have a folder in my local drive and it can have subfolders or nested subfolders. By using PowerShell recursive function, we will read the file names inside the folder and subfolders.

try {
function getAllFile([string]$path) {
$fc = new-object -com scripting.filesystemobject
$folder = $fc.getfolder($path)
Write-Host "Folder Name="$folder.Name "Path="$path
foreach ($i in $folder.files) {
Write-Host "`nFile Name::" $i.Name
Write-Host "File Path::" $i.Path
}
foreach ($i in $folder.subfolders) {
getAllFile($i.path)
}
}
getAllFile "G:\KVN Articles"
}
catch {
Write-Host "`n Error:: $($_.Exception.Message)" -ForegroundColor Red -BackgroundColor Yellow
}

Let us walk through the code:

  • new-object -com scripting.filesystemobject – To get the object of the file system
  • $fc.getfolder($path) – To get object of folder
  • $folder.subfolders – To get object of folder

The output will be as follows:

powershell recursive function
PowerShell read all files from folder

You may like the following PowerShell tutorials:

Here, we learned how to read all files from folders and subfolders using PowerShell.

>